@liselvins/lark-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/LICENSE +9 -0
  3. package/README.md +215 -0
  4. package/README_ZH.md +212 -0
  5. package/dist/auth/config.d.ts +12 -0
  6. package/dist/auth/config.js +15 -0
  7. package/dist/auth/handler/handler-local.d.ts +21 -0
  8. package/dist/auth/handler/handler-local.js +123 -0
  9. package/dist/auth/handler/handler.d.ts +38 -0
  10. package/dist/auth/handler/handler.js +123 -0
  11. package/dist/auth/handler/index.d.ts +2 -0
  12. package/dist/auth/handler/index.js +18 -0
  13. package/dist/auth/index.d.ts +4 -0
  14. package/dist/auth/index.js +20 -0
  15. package/dist/auth/provider/index.d.ts +3 -0
  16. package/dist/auth/provider/index.js +19 -0
  17. package/dist/auth/provider/oauth.d.ts +18 -0
  18. package/dist/auth/provider/oauth.js +147 -0
  19. package/dist/auth/provider/oidc.d.ts +18 -0
  20. package/dist/auth/provider/oidc.js +172 -0
  21. package/dist/auth/provider/types.d.ts +8 -0
  22. package/dist/auth/provider/types.js +2 -0
  23. package/dist/auth/store.d.ts +39 -0
  24. package/dist/auth/store.js +213 -0
  25. package/dist/auth/types.d.ts +13 -0
  26. package/dist/auth/types.js +2 -0
  27. package/dist/auth/utils/encryption.d.ts +7 -0
  28. package/dist/auth/utils/encryption.js +40 -0
  29. package/dist/auth/utils/index.d.ts +3 -0
  30. package/dist/auth/utils/index.js +19 -0
  31. package/dist/auth/utils/is-token-valid.d.ts +7 -0
  32. package/dist/auth/utils/is-token-valid.js +28 -0
  33. package/dist/auth/utils/pkce.d.ts +6 -0
  34. package/dist/auth/utils/pkce.js +20 -0
  35. package/dist/auth/utils/storage-manager.d.ts +17 -0
  36. package/dist/auth/utils/storage-manager.js +159 -0
  37. package/dist/cli/index.d.ts +1 -0
  38. package/dist/cli/index.js +5 -0
  39. package/dist/cli/login-handler.d.ts +19 -0
  40. package/dist/cli/login-handler.js +288 -0
  41. package/dist/cli.d.ts +4 -0
  42. package/dist/cli.js +124 -0
  43. package/dist/index.d.ts +3 -0
  44. package/dist/index.js +19 -0
  45. package/dist/mcp-server/index.d.ts +2 -0
  46. package/dist/mcp-server/index.js +18 -0
  47. package/dist/mcp-server/shared/index.d.ts +2 -0
  48. package/dist/mcp-server/shared/index.js +18 -0
  49. package/dist/mcp-server/shared/init.d.ts +10 -0
  50. package/dist/mcp-server/shared/init.js +121 -0
  51. package/dist/mcp-server/shared/types.d.ts +44 -0
  52. package/dist/mcp-server/shared/types.js +10 -0
  53. package/dist/mcp-server/transport/index.d.ts +3 -0
  54. package/dist/mcp-server/transport/index.js +19 -0
  55. package/dist/mcp-server/transport/sse.d.ts +2 -0
  56. package/dist/mcp-server/transport/sse.js +75 -0
  57. package/dist/mcp-server/transport/stdio.d.ts +2 -0
  58. package/dist/mcp-server/transport/stdio.js +36 -0
  59. package/dist/mcp-server/transport/streamable.d.ts +2 -0
  60. package/dist/mcp-server/transport/streamable.js +86 -0
  61. package/dist/mcp-server/transport/utils.d.ts +16 -0
  62. package/dist/mcp-server/transport/utils.js +34 -0
  63. package/dist/mcp-tool/constants.d.ts +54 -0
  64. package/dist/mcp-tool/constants.js +141 -0
  65. package/dist/mcp-tool/document-tool/index.d.ts +1 -0
  66. package/dist/mcp-tool/document-tool/index.js +17 -0
  67. package/dist/mcp-tool/document-tool/recall/index.d.ts +2 -0
  68. package/dist/mcp-tool/document-tool/recall/index.js +39 -0
  69. package/dist/mcp-tool/document-tool/recall/request.d.ts +2 -0
  70. package/dist/mcp-tool/document-tool/recall/request.js +25 -0
  71. package/dist/mcp-tool/document-tool/recall/type.d.ts +19 -0
  72. package/dist/mcp-tool/document-tool/recall/type.js +2 -0
  73. package/dist/mcp-tool/index.d.ts +5 -0
  74. package/dist/mcp-tool/index.js +21 -0
  75. package/dist/mcp-tool/mcp-tool.d.ts +52 -0
  76. package/dist/mcp-tool/mcp-tool.js +198 -0
  77. package/dist/mcp-tool/tools/en/builtin-tools/docx/block-factory.d.ts +99 -0
  78. package/dist/mcp-tool/tools/en/builtin-tools/docx/block-factory.js +266 -0
  79. package/dist/mcp-tool/tools/en/builtin-tools/docx/block-tools.d.ts +10 -0
  80. package/dist/mcp-tool/tools/en/builtin-tools/docx/block-tools.js +686 -0
  81. package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.d.ts +6 -0
  82. package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.js +220 -0
  83. package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.d.ts +4 -0
  84. package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.js +63 -0
  85. package/dist/mcp-tool/tools/en/builtin-tools/index.d.ts +4 -0
  86. package/dist/mcp-tool/tools/en/builtin-tools/index.js +6 -0
  87. package/dist/mcp-tool/tools/en/gen-tools/index.d.ts +113 -0
  88. package/dist/mcp-tool/tools/en/gen-tools/index.js +127 -0
  89. package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.d.ts +562 -0
  90. package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.js +264 -0
  91. package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.d.ts +912 -0
  92. package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.js +449 -0
  93. package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.d.ts +1213 -0
  94. package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.js +560 -0
  95. package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.d.ts +2530 -0
  96. package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.js +949 -0
  97. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.d.ts +80 -0
  98. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.js +53 -0
  99. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.d.ts +1008 -0
  100. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.js +775 -0
  101. package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.d.ts +3928 -0
  102. package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.js +1602 -0
  103. package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.d.ts +6043 -0
  104. package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.js +1857 -0
  105. package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.d.ts +151 -0
  106. package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.js +71 -0
  107. package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.d.ts +26 -0
  108. package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.js +17 -0
  109. package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.d.ts +2174 -0
  110. package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.js +594 -0
  111. package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.d.ts +755 -0
  112. package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.js +234 -0
  113. package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.d.ts +3541 -0
  114. package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.js +1786 -0
  115. package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.d.ts +40 -0
  116. package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.js +18 -0
  117. package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.d.ts +2075 -0
  118. package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.js +1594 -0
  119. package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.d.ts +528 -0
  120. package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.js +260 -0
  121. package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.d.ts +189 -0
  122. package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.js +132 -0
  123. package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.d.ts +4274 -0
  124. package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.js +2583 -0
  125. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.d.ts +16873 -0
  126. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.js +5045 -0
  127. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.d.ts +29387 -0
  128. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.js +7787 -0
  129. package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.d.ts +4274 -0
  130. package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.js +1367 -0
  131. package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.d.ts +58 -0
  132. package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.js +28 -0
  133. package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.d.ts +93466 -0
  134. package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.js +14350 -0
  135. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.d.ts +3251 -0
  136. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.js +1422 -0
  137. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.d.ts +174 -0
  138. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.js +117 -0
  139. package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.d.ts +86 -0
  140. package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.js +48 -0
  141. package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.d.ts +44 -0
  142. package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.js +17 -0
  143. package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.d.ts +733 -0
  144. package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.js +285 -0
  145. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.d.ts +10076 -0
  146. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.js +6065 -0
  147. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.d.ts +158 -0
  148. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.js +61 -0
  149. package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.d.ts +70 -0
  150. package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.js +27 -0
  151. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.d.ts +3043 -0
  152. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.js +1869 -0
  153. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.d.ts +2176 -0
  154. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.js +460 -0
  155. package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.d.ts +2301 -0
  156. package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.js +669 -0
  157. package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.d.ts +2462 -0
  158. package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.js +1655 -0
  159. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.d.ts +104 -0
  160. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.js +45 -0
  161. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.d.ts +329 -0
  162. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.js +78 -0
  163. package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.d.ts +92 -0
  164. package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.js +62 -0
  165. package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.d.ts +52 -0
  166. package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.js +24 -0
  167. package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.d.ts +1628 -0
  168. package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.js +434 -0
  169. package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
  170. package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.js +17 -0
  171. package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.d.ts +131 -0
  172. package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.js +59 -0
  173. package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.d.ts +333 -0
  174. package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.js +176 -0
  175. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.d.ts +309 -0
  176. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.js +178 -0
  177. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.d.ts +1177 -0
  178. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.js +559 -0
  179. package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.d.ts +640 -0
  180. package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.js +303 -0
  181. package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.d.ts +192 -0
  182. package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.js +71 -0
  183. package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.d.ts +1695 -0
  184. package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.js +446 -0
  185. package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
  186. package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.js +32 -0
  187. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.d.ts +979 -0
  188. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.js +721 -0
  189. package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
  190. package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.js +65 -0
  191. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.d.ts +1161 -0
  192. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.js +672 -0
  193. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.d.ts +6051 -0
  194. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.js +1970 -0
  195. package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.d.ts +31 -0
  196. package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.js +24 -0
  197. package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.d.ts +80 -0
  198. package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.js +37 -0
  199. package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.d.ts +182 -0
  200. package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.js +141 -0
  201. package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.d.ts +5725 -0
  202. package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.js +1751 -0
  203. package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.d.ts +21 -0
  204. package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.js +14 -0
  205. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.d.ts +72 -0
  206. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.js +19 -0
  207. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.d.ts +843 -0
  208. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.js +381 -0
  209. package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.d.ts +116 -0
  210. package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.js +77 -0
  211. package/dist/mcp-tool/tools/index.d.ts +104 -0
  212. package/dist/mcp-tool/tools/index.js +9 -0
  213. package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-factory.d.ts +1 -0
  214. package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-factory.js +18 -0
  215. package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-tools.d.ts +4 -0
  216. package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-tools.js +18 -0
  217. package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.d.ts +6 -0
  218. package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.js +199 -0
  219. package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.d.ts +4 -0
  220. package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.js +63 -0
  221. package/dist/mcp-tool/tools/zh/builtin-tools/index.d.ts +4 -0
  222. package/dist/mcp-tool/tools/zh/builtin-tools/index.js +6 -0
  223. package/dist/mcp-tool/tools/zh/gen-tools/index.d.ts +113 -0
  224. package/dist/mcp-tool/tools/zh/gen-tools/index.js +127 -0
  225. package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.d.ts +562 -0
  226. package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.js +277 -0
  227. package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.d.ts +912 -0
  228. package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.js +430 -0
  229. package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.d.ts +1213 -0
  230. package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.js +541 -0
  231. package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.d.ts +2530 -0
  232. package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.js +885 -0
  233. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.d.ts +80 -0
  234. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.js +59 -0
  235. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.d.ts +1007 -0
  236. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.js +721 -0
  237. package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.d.ts +3928 -0
  238. package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.js +1532 -0
  239. package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.d.ts +6043 -0
  240. package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.js +1620 -0
  241. package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.d.ts +151 -0
  242. package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.js +87 -0
  243. package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.d.ts +26 -0
  244. package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.js +17 -0
  245. package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.d.ts +2174 -0
  246. package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.js +574 -0
  247. package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.d.ts +755 -0
  248. package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.js +270 -0
  249. package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.d.ts +3541 -0
  250. package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.js +1864 -0
  251. package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.d.ts +40 -0
  252. package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.js +18 -0
  253. package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.d.ts +2075 -0
  254. package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.js +1533 -0
  255. package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.d.ts +528 -0
  256. package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.js +248 -0
  257. package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.d.ts +189 -0
  258. package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.js +130 -0
  259. package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.d.ts +4274 -0
  260. package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.js +2394 -0
  261. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.d.ts +16957 -0
  262. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.js +4753 -0
  263. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.d.ts +29869 -0
  264. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.js +7902 -0
  265. package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.d.ts +4324 -0
  266. package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.js +1340 -0
  267. package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.d.ts +58 -0
  268. package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.js +26 -0
  269. package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.d.ts +116719 -0
  270. package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.js +14949 -0
  271. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.d.ts +3251 -0
  272. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.js +1395 -0
  273. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.d.ts +174 -0
  274. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.js +115 -0
  275. package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.d.ts +86 -0
  276. package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.js +48 -0
  277. package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.d.ts +44 -0
  278. package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.js +25 -0
  279. package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.d.ts +733 -0
  280. package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.js +279 -0
  281. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.d.ts +10085 -0
  282. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.js +5787 -0
  283. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.d.ts +158 -0
  284. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.js +64 -0
  285. package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.d.ts +70 -0
  286. package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.js +27 -0
  287. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.d.ts +3043 -0
  288. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.js +1812 -0
  289. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.d.ts +2176 -0
  290. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.js +454 -0
  291. package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.d.ts +2301 -0
  292. package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.js +650 -0
  293. package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.d.ts +2465 -0
  294. package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.js +1467 -0
  295. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.d.ts +104 -0
  296. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.js +45 -0
  297. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.d.ts +329 -0
  298. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.js +76 -0
  299. package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.d.ts +92 -0
  300. package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.js +62 -0
  301. package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.d.ts +52 -0
  302. package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.js +20 -0
  303. package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.d.ts +1664 -0
  304. package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.js +455 -0
  305. package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
  306. package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.js +17 -0
  307. package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.d.ts +131 -0
  308. package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.js +53 -0
  309. package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.d.ts +609 -0
  310. package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.js +321 -0
  311. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.d.ts +309 -0
  312. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.js +165 -0
  313. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.d.ts +1177 -0
  314. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.js +525 -0
  315. package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.d.ts +640 -0
  316. package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.js +295 -0
  317. package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.d.ts +194 -0
  318. package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.js +72 -0
  319. package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.d.ts +1695 -0
  320. package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.js +556 -0
  321. package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
  322. package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.js +32 -0
  323. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.d.ts +979 -0
  324. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.js +821 -0
  325. package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
  326. package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.js +65 -0
  327. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.d.ts +1161 -0
  328. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.js +647 -0
  329. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.d.ts +6077 -0
  330. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.js +1894 -0
  331. package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.d.ts +31 -0
  332. package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.js +24 -0
  333. package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.d.ts +80 -0
  334. package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.js +37 -0
  335. package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.d.ts +182 -0
  336. package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.js +137 -0
  337. package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.d.ts +5725 -0
  338. package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.js +1640 -0
  339. package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.d.ts +21 -0
  340. package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.js +14 -0
  341. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.d.ts +72 -0
  342. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.js +34 -0
  343. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.d.ts +843 -0
  344. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.js +376 -0
  345. package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.d.ts +116 -0
  346. package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.js +77 -0
  347. package/dist/mcp-tool/types/index.d.ts +53 -0
  348. package/dist/mcp-tool/types/index.js +9 -0
  349. package/dist/mcp-tool/utils/case-transf.d.ts +2 -0
  350. package/dist/mcp-tool/utils/case-transf.js +15 -0
  351. package/dist/mcp-tool/utils/filter-tools.d.ts +2 -0
  352. package/dist/mcp-tool/utils/filter-tools.js +27 -0
  353. package/dist/mcp-tool/utils/get-should-use-uat.d.ts +2 -0
  354. package/dist/mcp-tool/utils/get-should-use-uat.js +18 -0
  355. package/dist/mcp-tool/utils/handler.d.ts +2 -0
  356. package/dist/mcp-tool/utils/handler.js +92 -0
  357. package/dist/mcp-tool/utils/index.d.ts +4 -0
  358. package/dist/mcp-tool/utils/index.js +20 -0
  359. package/dist/utils/clean-env-args.d.ts +1 -0
  360. package/dist/utils/clean-env-args.js +12 -0
  361. package/dist/utils/constants.d.ts +18 -0
  362. package/dist/utils/constants.js +36 -0
  363. package/dist/utils/http-instance.d.ts +2 -0
  364. package/dist/utils/http-instance.js +21 -0
  365. package/dist/utils/logger.d.ts +22 -0
  366. package/dist/utils/logger.js +97 -0
  367. package/dist/utils/noop.d.ts +1 -0
  368. package/dist/utils/noop.js +6 -0
  369. package/dist/utils/parser-string-array.d.ts +1 -0
  370. package/dist/utils/parser-string-array.js +13 -0
  371. package/dist/utils/safe-json-parse.d.ts +1 -0
  372. package/dist/utils/safe-json-parse.js +14 -0
  373. package/dist/utils/version.d.ts +1 -0
  374. package/dist/utils/version.js +52 -0
  375. package/docs/recall-mcp/README.md +137 -0
  376. package/docs/recall-mcp/README_ZH.md +137 -0
  377. package/docs/reference/cli/cli-zh.md +92 -0
  378. package/docs/reference/cli/cli.md +92 -0
  379. package/docs/reference/tool-presets/presets-zh.md +120 -0
  380. package/docs/reference/tool-presets/presets.md +120 -0
  381. package/docs/reference/tool-presets/tools-en.md +1516 -0
  382. package/docs/reference/tool-presets/tools-zh.md +1533 -0
  383. package/docs/troubleshooting/faq-zh.md +67 -0
  384. package/docs/troubleshooting/faq.md +67 -0
  385. package/docs/usage/configuration/configuration-zh.md +344 -0
  386. package/docs/usage/configuration/configuration.md +344 -0
  387. package/docs/usage/docker/docker-zh.md +101 -0
  388. package/docs/usage/docker/docker.md +106 -0
  389. package/package.json +65 -0
@@ -0,0 +1,686 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.docxBlockTools = exports.larkDocxFillWhiteboardTool = exports.larkDocxUploadImageTool = exports.larkDocxCreateTableTool = exports.larkDocxDeleteBlocksTool = exports.larkDocxUpdateBlockTextTool = exports.larkDocxBatchCreateBlocksTool = exports.larkDocxGetDocumentBlocksTool = void 0;
40
+ const lark = __importStar(require("@larksuiteoapi/node-sdk"));
41
+ const stream_1 = require("stream");
42
+ const zod_1 = require("zod");
43
+ const axios_1 = __importDefault(require("axios"));
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const block_factory_1 = require("./block-factory");
47
+ // ─── Zod Schemas ──────────────────────────────────────────────────────────────
48
+ const DocumentIdSchema = zod_1.z.string().describe('Document ID or URL. Supports: https://xxx.feishu.cn/docx/xxx, https://xxx.feishu.cn/docs/xxx, or direct ID.');
49
+ const ParentBlockIdSchema = zod_1.z.string().describe('Parent block ID. For page-level (root) insertion, use the document ID itself. Get block IDs via docx.builtin.getDocumentBlocks.');
50
+ const BlockIdSchema = zod_1.z.string().describe('Block ID of the specific block to operate on. Get block IDs via docx.builtin.getDocumentBlocks.');
51
+ const IndexSchema = zod_1.z.number().describe('Insertion position index relative to the parent block\'s children array. 0 = insert at the beginning. For consecutive insertions, increment by 1.');
52
+ const TextStyleSchema = zod_1.z
53
+ .object({
54
+ bold: zod_1.z.boolean().optional().describe('Bold text'),
55
+ italic: zod_1.z.boolean().optional().describe('Italic text'),
56
+ underline: zod_1.z.boolean().optional().describe('Underline text'),
57
+ strikethrough: zod_1.z.boolean().optional().describe('Strikethrough text'),
58
+ inline_code: zod_1.z.boolean().optional().describe('Inline code'),
59
+ text_color: zod_1.z
60
+ .number()
61
+ .optional()
62
+ .describe('Text color: 0=black, 1=gray, 2=brown, 3=orange, 4=yellow, 5=green, 6=blue, 7=purple'),
63
+ background_color: zod_1.z
64
+ .number()
65
+ .optional()
66
+ .describe('Background color: 1=gray, 2=brown, 3=orange, 4=yellow, 5=green, 6=blue, 7=purple'),
67
+ })
68
+ .optional();
69
+ const TextElementSchema = zod_1.z.union([
70
+ zod_1.z.object({ text: zod_1.z.string().describe('Text content'), style: TextStyleSchema }),
71
+ zod_1.z.object({ equation: zod_1.z.string().describe('LaTeX equation content'), style: TextStyleSchema }),
72
+ ]);
73
+ const BlockConfigSchema = zod_1.z.object({
74
+ blockType: zod_1.z.string().describe("Block type: 'text', 'code', 'heading', 'list', 'image', 'mermaid', 'whiteboard', or 'heading1'-'heading9'."),
75
+ options: zod_1.z
76
+ .union([
77
+ zod_1.z.object({
78
+ text: zod_1.z.object({
79
+ textStyles: zod_1.z.array(TextElementSchema).describe('Array of text segments with styles'),
80
+ align: zod_1.z.number().optional().default(1).describe('Alignment: 1=left, 2=center, 3=right'),
81
+ }),
82
+ }),
83
+ zod_1.z.object({
84
+ code: zod_1.z.object({
85
+ code: zod_1.z.string().describe('Code content'),
86
+ language: zod_1.z
87
+ .number()
88
+ .optional()
89
+ .default(1)
90
+ .describe('Language code: 1=PlainText, 7=Bash, 10=C, 22=Go, 29=Java, 30=JavaScript, 49=Python, 53=Rust, 56=SQL, 63=TypeScript'),
91
+ wrap: zod_1.z.boolean().optional().default(false).describe('Auto line wrap'),
92
+ }),
93
+ }),
94
+ zod_1.z.object({
95
+ heading: zod_1.z.object({
96
+ level: zod_1.z.number().min(1).max(9).describe('Heading level 1-9'),
97
+ content: zod_1.z.string().describe('Heading text'),
98
+ align: zod_1.z.number().optional().default(1),
99
+ }),
100
+ }),
101
+ zod_1.z.object({
102
+ list: zod_1.z.object({
103
+ content: zod_1.z.string().describe('List item text'),
104
+ isOrdered: zod_1.z.boolean().optional().default(false).describe('true=ordered, false=bullet'),
105
+ align: zod_1.z.number().optional().default(1),
106
+ }),
107
+ }),
108
+ zod_1.z.object({
109
+ image: zod_1.z.object({
110
+ width: zod_1.z.number().optional().describe('Image width in pixels'),
111
+ height: zod_1.z.number().optional().describe('Image height in pixels'),
112
+ }),
113
+ }),
114
+ zod_1.z.object({
115
+ mermaid: zod_1.z.object({
116
+ code: zod_1.z.string().describe('Mermaid diagram code'),
117
+ }),
118
+ }),
119
+ zod_1.z.object({
120
+ whiteboard: zod_1.z.object({
121
+ align: zod_1.z.number().optional().default(2).describe('Whiteboard alignment: 1=left, 2=center, 3=right'),
122
+ }),
123
+ }),
124
+ zod_1.z.record(zod_1.z.any()),
125
+ ])
126
+ .describe('Options for the specific block type'),
127
+ });
128
+ const TableCellContentSchema = zod_1.z.object({
129
+ coordinate: zod_1.z.object({
130
+ row: zod_1.z.number().min(0).describe('Row (0-based)'),
131
+ column: zod_1.z.number().min(0).describe('Column (0-based)'),
132
+ }),
133
+ content: BlockConfigSchema,
134
+ });
135
+ const TableCreateSchema = zod_1.z.object({
136
+ columnSize: zod_1.z.number().min(1).describe('Number of columns'),
137
+ rowSize: zod_1.z.number().min(1).describe('Number of rows'),
138
+ cells: zod_1.z
139
+ .array(TableCellContentSchema)
140
+ .optional()
141
+ .describe('Cell configurations. Multiple entries with same coordinates create multi-block cells.'),
142
+ });
143
+ const ImagesArraySchema = zod_1.z.array(zod_1.z.object({
144
+ blockId: BlockIdSchema,
145
+ imagePathOrUrl: zod_1.z.string().describe('Local file path or HTTP/HTTPS URL of the image'),
146
+ fileName: zod_1.z.string().optional().describe('Image file name (e.g. "image.png")'),
147
+ })).describe('Array of image binding objects');
148
+ const WhiteboardFillArraySchema = zod_1.z.array(zod_1.z.object({
149
+ whiteboardId: zod_1.z.string().describe('Whiteboard ID (the token from board.token field)'),
150
+ code: zod_1.z.string().describe('PlantUML or Mermaid diagram code'),
151
+ syntax_type: zod_1.z.number().describe('1=PlantUML, 2=Mermaid'),
152
+ })).describe('Array of whiteboard fill items');
153
+ // ─── Helper ───────────────────────────────────────────────────────────────────
154
+ function extractDocumentId(input) {
155
+ // Try URL patterns
156
+ const urlPattern = /\/(?:docx|docs)\/([a-zA-Z0-9_-]{10,})/;
157
+ const match = input.match(urlPattern);
158
+ if (match)
159
+ return match[1];
160
+ // Direct ID
161
+ if (/^[a-zA-Z0-9_-]{10,}$/.test(input))
162
+ return input;
163
+ return input;
164
+ }
165
+ // ─── Tool: getDocumentBlocks ──────────────────────────────────────────────────
166
+ exports.larkDocxGetDocumentBlocksTool = {
167
+ project: 'docx',
168
+ name: 'docx.builtin.getDocumentBlocks',
169
+ accessTokens: ['user', 'tenant'],
170
+ description: '[Feishu/Lark]-Docs-Document-Get Document Blocks-Retrieves the complete block structure of a document. Use this before editing to understand the document layout, get block IDs, and determine insertion positions.',
171
+ schema: {
172
+ data: zod_1.z.object({
173
+ document_id: DocumentIdSchema,
174
+ page_size: zod_1.z.number().optional().default(500).describe('Number of blocks per page (max 500)'),
175
+ page_token: zod_1.z.string().optional().describe('Pagination token from previous response'),
176
+ }),
177
+ useUAT: zod_1.z.boolean().optional().describe('Whether to use user access token'),
178
+ },
179
+ customHandler: async (client, params, options) => {
180
+ var _a, _b;
181
+ try {
182
+ const { userAccessToken } = options || {};
183
+ const docId = extractDocumentId(params.data.document_id);
184
+ const allBlocks = [];
185
+ let pageToken = params.data.page_token;
186
+ let hasMore = true;
187
+ while (hasMore) {
188
+ const reqParams = { page_size: params.data.page_size || 500 };
189
+ if (pageToken)
190
+ reqParams.page_token = pageToken;
191
+ const response = userAccessToken && params.useUAT
192
+ ? await client.request({ method: 'GET', url: `/open-apis/docx/v1/documents/${docId}/blocks`, params: reqParams }, lark.withUserAccessToken(userAccessToken))
193
+ : await client.request({
194
+ method: 'GET',
195
+ url: `/open-apis/docx/v1/documents/${docId}/blocks`,
196
+ params: reqParams,
197
+ });
198
+ const data = (_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : response;
199
+ if (data === null || data === void 0 ? void 0 : data.items)
200
+ allBlocks.push(...data.items);
201
+ pageToken = data === null || data === void 0 ? void 0 : data.page_token;
202
+ hasMore = !!(data === null || data === void 0 ? void 0 : data.has_more) && !!pageToken;
203
+ }
204
+ return {
205
+ content: [{ type: 'text', text: JSON.stringify({ items: allBlocks, total: allBlocks.length }) }],
206
+ };
207
+ }
208
+ catch (error) {
209
+ return {
210
+ isError: true,
211
+ content: [{ type: 'text', text: JSON.stringify(((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
212
+ };
213
+ }
214
+ },
215
+ };
216
+ // ─── Tool: batchCreateBlocks ──────────────────────────────────────────────────
217
+ exports.larkDocxBatchCreateBlocksTool = {
218
+ project: 'docx',
219
+ name: 'docx.builtin.batchCreateBlocks',
220
+ accessTokens: ['user', 'tenant'],
221
+ description: '[Feishu/Lark]-Docs-Document-Batch Create Blocks-Creates multiple blocks (text, code, heading, list, image, mermaid, whiteboard) in a document. Auto-batches when >50 blocks. For image blocks, use docx.builtin.uploadImage afterwards to bind images. For whiteboard blocks, use docx.builtin.fillWhiteboard to fill content.',
222
+ schema: {
223
+ data: zod_1.z.object({
224
+ document_id: DocumentIdSchema,
225
+ parent_block_id: ParentBlockIdSchema,
226
+ index: IndexSchema,
227
+ blocks: zod_1.z
228
+ .array(BlockConfigSchema)
229
+ .describe('Array of block configurations. MUST be a JSON array, NOT a string.'),
230
+ }),
231
+ useUAT: zod_1.z.boolean().optional(),
232
+ },
233
+ customHandler: async (client, params, options) => {
234
+ var _a, _b, _c, _d, _e, _f;
235
+ try {
236
+ const { userAccessToken } = options || {};
237
+ const docId = extractDocumentId(params.data.document_id);
238
+ const parentBlockId = params.data.parent_block_id;
239
+ const startIndex = params.data.index;
240
+ const blocks = params.data.blocks;
241
+ if (typeof blocks === 'string') {
242
+ return {
243
+ isError: true,
244
+ content: [{ type: 'text', text: 'ERROR: "blocks" was passed as a string. Provide a proper JSON array.' }],
245
+ };
246
+ }
247
+ const makeRequest = async (blockContents, index) => {
248
+ var _a;
249
+ const reqConfig = {
250
+ method: 'POST',
251
+ url: `/open-apis/docx/v1/documents/${docId}/blocks/${parentBlockId}/children`,
252
+ params: { document_revision_id: -1 },
253
+ data: { children: blockContents, index },
254
+ };
255
+ const response = userAccessToken && params.useUAT
256
+ ? await client.request(reqConfig, lark.withUserAccessToken(userAccessToken))
257
+ : await client.request(reqConfig);
258
+ return (_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : response;
259
+ };
260
+ // Build block contents
261
+ const allBlockContents = [];
262
+ for (const blockConfig of blocks) {
263
+ const content = (0, block_factory_1.createBlockContent)(blockConfig.blockType, blockConfig.options || {});
264
+ allBlockContents.push(content);
265
+ }
266
+ if (allBlockContents.length <= 50) {
267
+ const result = await makeRequest(allBlockContents, startIndex);
268
+ const imageBlocks = ((_a = result.children) === null || _a === void 0 ? void 0 : _a.filter((c) => c.block_type === 27)) || [];
269
+ const whiteboardBlocks = ((_b = result.children) === null || _b === void 0 ? void 0 : _b.filter((c) => c.block_type === 43)) || [];
270
+ const responseData = {
271
+ ...result,
272
+ nextIndex: startIndex + allBlockContents.length,
273
+ totalBlocksCreated: allBlockContents.length,
274
+ };
275
+ if (imageBlocks.length > 0) {
276
+ responseData.imageBlocksInfo = {
277
+ count: imageBlocks.length,
278
+ blockIds: imageBlocks.map((b) => b.block_id),
279
+ reminder: 'Use docx.builtin.uploadImage to upload and bind images to these block IDs.',
280
+ };
281
+ }
282
+ if (whiteboardBlocks.length > 0) {
283
+ responseData.whiteboardBlocksInfo = {
284
+ count: whiteboardBlocks.length,
285
+ blocks: whiteboardBlocks.map((b) => { var _a; return ({ blockId: b.block_id, token: (_a = b.board) === null || _a === void 0 ? void 0 : _a.token }); }),
286
+ reminder: 'Use docx.builtin.fillWhiteboard with the token as whiteboardId.',
287
+ };
288
+ }
289
+ return { content: [{ type: 'text', text: JSON.stringify(responseData) }] };
290
+ }
291
+ // Batch processing for >50 blocks
292
+ const batchSize = 50;
293
+ const totalBatches = Math.ceil(allBlockContents.length / batchSize);
294
+ const results = [];
295
+ let currentIndex = startIndex;
296
+ let createdCount = 0;
297
+ for (let i = 0; i < totalBatches; i++) {
298
+ const batch = allBlockContents.slice(i * batchSize, (i + 1) * batchSize);
299
+ try {
300
+ const batchResult = await makeRequest(batch, currentIndex);
301
+ results.push(batchResult);
302
+ createdCount += batch.length;
303
+ currentIndex = startIndex + createdCount;
304
+ }
305
+ catch (error) {
306
+ return {
307
+ isError: true,
308
+ content: [{
309
+ type: 'text',
310
+ text: JSON.stringify({
311
+ msg: `Batch ${i + 1}/${totalBatches} failed. ${createdCount} blocks created. Retry from index ${currentIndex}.`,
312
+ error: ((_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.data) || (error === null || error === void 0 ? void 0 : error.message) || error,
313
+ }),
314
+ }],
315
+ };
316
+ }
317
+ }
318
+ // Collect image/whiteboard blocks from all batches
319
+ const allImageBlocks = [];
320
+ const allWhiteboardBlocks = [];
321
+ for (const r of results) {
322
+ allImageBlocks.push(...(((_d = r.children) === null || _d === void 0 ? void 0 : _d.filter((c) => c.block_type === 27)) || []));
323
+ allWhiteboardBlocks.push(...(((_e = r.children) === null || _e === void 0 ? void 0 : _e.filter((c) => c.block_type === 43)) || []));
324
+ }
325
+ const responseData = {
326
+ totalBatches,
327
+ totalBlocksCreated: createdCount,
328
+ nextIndex: currentIndex,
329
+ lastBatchResult: results[results.length - 1],
330
+ };
331
+ if (allImageBlocks.length > 0) {
332
+ responseData.imageBlocksInfo = {
333
+ count: allImageBlocks.length,
334
+ blockIds: allImageBlocks.map((b) => b.block_id),
335
+ reminder: 'Use docx.builtin.uploadImage to upload and bind images to these block IDs.',
336
+ };
337
+ }
338
+ if (allWhiteboardBlocks.length > 0) {
339
+ responseData.whiteboardBlocksInfo = {
340
+ count: allWhiteboardBlocks.length,
341
+ blocks: allWhiteboardBlocks.map((b) => { var _a; return ({ blockId: b.block_id, token: (_a = b.board) === null || _a === void 0 ? void 0 : _a.token }); }),
342
+ reminder: 'Use docx.builtin.fillWhiteboard with the token as whiteboardId.',
343
+ };
344
+ }
345
+ return { content: [{ type: 'text', text: JSON.stringify(responseData) }] };
346
+ }
347
+ catch (error) {
348
+ return {
349
+ isError: true,
350
+ content: [{ type: 'text', text: JSON.stringify(((_f = error === null || error === void 0 ? void 0 : error.response) === null || _f === void 0 ? void 0 : _f.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
351
+ };
352
+ }
353
+ },
354
+ };
355
+ // ─── Tool: updateBlockText ────────────────────────────────────────────────────
356
+ exports.larkDocxUpdateBlockTextTool = {
357
+ project: 'docx',
358
+ name: 'docx.builtin.updateBlockText',
359
+ accessTokens: ['user', 'tenant'],
360
+ description: '[Feishu/Lark]-Docs-Document-Update Block Text-Updates the text content and styling of an existing block. Supports mixed text and equation elements with rich styling.',
361
+ schema: {
362
+ data: zod_1.z.object({
363
+ document_id: DocumentIdSchema,
364
+ block_id: BlockIdSchema,
365
+ text_elements: zod_1.z
366
+ .array(TextElementSchema)
367
+ .describe('Array of text/equation elements with styles. Example: [{text:"Hello",style:{bold:true}}]'),
368
+ }),
369
+ useUAT: zod_1.z.boolean().optional(),
370
+ },
371
+ customHandler: async (client, params, options) => {
372
+ var _a, _b;
373
+ try {
374
+ const { userAccessToken } = options || {};
375
+ const docId = extractDocumentId(params.data.document_id);
376
+ const blockId = params.data.block_id;
377
+ const elements = params.data.text_elements.map((item) => {
378
+ if (item.equation !== undefined) {
379
+ return { equation: { content: item.equation, text_element_style: (0, block_factory_1.applyDefaultTextStyle)(item.style) } };
380
+ }
381
+ return { text_run: { content: item.text || '', text_element_style: (0, block_factory_1.applyDefaultTextStyle)(item.style) } };
382
+ });
383
+ const reqConfig = {
384
+ method: 'PATCH',
385
+ url: `/open-apis/docx/v1/documents/${docId}/blocks/${blockId}`,
386
+ params: { document_revision_id: -1 },
387
+ data: { update_text_elements: { elements } },
388
+ };
389
+ const response = userAccessToken && params.useUAT
390
+ ? await client.request(reqConfig, lark.withUserAccessToken(userAccessToken))
391
+ : await client.request(reqConfig);
392
+ return { content: [{ type: 'text', text: JSON.stringify((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : response) }] };
393
+ }
394
+ catch (error) {
395
+ return {
396
+ isError: true,
397
+ content: [{ type: 'text', text: JSON.stringify(((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
398
+ };
399
+ }
400
+ },
401
+ };
402
+ // ─── Tool: deleteBlocks ───────────────────────────────────────────────────────
403
+ exports.larkDocxDeleteBlocksTool = {
404
+ project: 'docx',
405
+ name: 'docx.builtin.deleteBlocks',
406
+ accessTokens: ['user', 'tenant'],
407
+ description: '[Feishu/Lark]-Docs-Document-Delete Blocks-Deletes consecutive blocks by index range. To delete blocks 2,3,4 use startIndex=2, endIndex=5. To delete a single block at position 2, use startIndex=2, endIndex=3.',
408
+ schema: {
409
+ data: zod_1.z.object({
410
+ document_id: DocumentIdSchema,
411
+ parent_block_id: ParentBlockIdSchema,
412
+ start_index: zod_1.z.number().min(0).describe('Starting index (inclusive)'),
413
+ end_index: zod_1.z.number().min(1).describe('Ending index (exclusive)'),
414
+ }),
415
+ useUAT: zod_1.z.boolean().optional(),
416
+ },
417
+ customHandler: async (client, params, options) => {
418
+ var _a, _b;
419
+ try {
420
+ const { userAccessToken } = options || {};
421
+ const docId = extractDocumentId(params.data.document_id);
422
+ const parentBlockId = params.data.parent_block_id;
423
+ const reqConfig = {
424
+ method: 'DELETE',
425
+ url: `/open-apis/docx/v1/documents/${docId}/blocks/${parentBlockId}/children/batch_delete`,
426
+ data: { start_index: params.data.start_index, end_index: params.data.end_index },
427
+ };
428
+ const response = userAccessToken && params.useUAT
429
+ ? await client.request(reqConfig, lark.withUserAccessToken(userAccessToken))
430
+ : await client.request(reqConfig);
431
+ return {
432
+ content: [{
433
+ type: 'text',
434
+ text: JSON.stringify({
435
+ msg: `Successfully deleted blocks from index ${params.data.start_index} to ${params.data.end_index - 1}`,
436
+ ...((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : response),
437
+ }),
438
+ }],
439
+ };
440
+ }
441
+ catch (error) {
442
+ return {
443
+ isError: true,
444
+ content: [{ type: 'text', text: JSON.stringify(((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
445
+ };
446
+ }
447
+ },
448
+ };
449
+ // ─── Tool: createTable ────────────────────────────────────────────────────────
450
+ exports.larkDocxCreateTableTool = {
451
+ project: 'docx',
452
+ name: 'docx.builtin.createTable',
453
+ accessTokens: ['user', 'tenant'],
454
+ description: '[Feishu/Lark]-Docs-Document-Create Table-Creates a table block with specified rows and columns. Cells can contain text, code, lists, images, etc. Multiple entries with same coordinates create multi-block cells. Image cells need docx.builtin.uploadImage afterwards.',
455
+ schema: {
456
+ data: zod_1.z.object({
457
+ document_id: DocumentIdSchema,
458
+ parent_block_id: ParentBlockIdSchema,
459
+ index: IndexSchema,
460
+ table_config: TableCreateSchema,
461
+ }),
462
+ useUAT: zod_1.z.boolean().optional(),
463
+ },
464
+ customHandler: async (client, params, options) => {
465
+ var _a, _b, _c;
466
+ try {
467
+ const { userAccessToken } = options || {};
468
+ const docId = extractDocumentId(params.data.document_id);
469
+ const parentBlockId = params.data.parent_block_id;
470
+ const tableConfig = params.data.table_config;
471
+ // Process cell contents through createBlockContent
472
+ const processedConfig = {
473
+ ...tableConfig,
474
+ cells: (_a = tableConfig.cells) === null || _a === void 0 ? void 0 : _a.map((cell) => ({
475
+ ...cell,
476
+ content: (0, block_factory_1.createBlockContent)(cell.content.blockType, cell.content.options),
477
+ })),
478
+ };
479
+ const tableStructure = (0, block_factory_1.createTableBlock)(processedConfig);
480
+ const reqConfig = {
481
+ method: 'POST',
482
+ url: `/open-apis/docx/v1/documents/${docId}/blocks/${parentBlockId}/descendant`,
483
+ params: { document_revision_id: -1 },
484
+ data: {
485
+ children_id: tableStructure.children_id,
486
+ descendants: tableStructure.descendants,
487
+ index: params.data.index,
488
+ },
489
+ };
490
+ const response = userAccessToken && params.useUAT
491
+ ? await client.request(reqConfig, lark.withUserAccessToken(userAccessToken))
492
+ : await client.request(reqConfig);
493
+ const result = (_b = response === null || response === void 0 ? void 0 : response.data) !== null && _b !== void 0 ? _b : response;
494
+ // Extract image block mappings
495
+ const imageTokens = [];
496
+ if (tableStructure.imageBlocks.length > 0 && (result === null || result === void 0 ? void 0 : result.block_id_relations)) {
497
+ const idMap = new Map();
498
+ for (const rel of result.block_id_relations) {
499
+ idMap.set(rel.temporary_block_id, rel.block_id);
500
+ }
501
+ for (const img of tableStructure.imageBlocks) {
502
+ const blockId = idMap.get(img.localBlockId);
503
+ if (blockId) {
504
+ imageTokens.push({ row: img.coordinate.row, column: img.coordinate.column, blockId });
505
+ }
506
+ }
507
+ }
508
+ const responseData = { ...result, tableSize: `${tableConfig.rowSize}x${tableConfig.columnSize}` };
509
+ if (imageTokens.length > 0) {
510
+ responseData.imageTokens = imageTokens;
511
+ responseData.imageReminder = 'Use docx.builtin.uploadImage to bind images to these block IDs.';
512
+ }
513
+ return { content: [{ type: 'text', text: JSON.stringify(responseData) }] };
514
+ }
515
+ catch (error) {
516
+ return {
517
+ isError: true,
518
+ content: [{ type: 'text', text: JSON.stringify(((_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
519
+ };
520
+ }
521
+ },
522
+ };
523
+ // ─── Tool: uploadImage ────────────────────────────────────────────────────────
524
+ exports.larkDocxUploadImageTool = {
525
+ project: 'docx',
526
+ name: 'docx.builtin.uploadImage',
527
+ accessTokens: ['user', 'tenant'],
528
+ description: '[Feishu/Lark]-Docs-Document-Upload and Bind Image-Uploads images from local paths or URLs and binds them to existing empty image blocks. Use after creating image blocks with docx.builtin.batchCreateBlocks or docx.builtin.createTable.',
529
+ schema: {
530
+ data: zod_1.z.object({
531
+ document_id: DocumentIdSchema,
532
+ images: ImagesArraySchema,
533
+ }),
534
+ useUAT: zod_1.z.boolean().optional(),
535
+ },
536
+ customHandler: async (client, params, options) => {
537
+ var _a, _b, _c, _d;
538
+ try {
539
+ const { userAccessToken } = options || {};
540
+ const docId = extractDocumentId(params.data.document_id);
541
+ const results = [];
542
+ for (const { blockId, imagePathOrUrl, fileName: providedFileName } of params.data.images) {
543
+ try {
544
+ // Step 1: Read image
545
+ let imageBuffer;
546
+ let detectedFileName;
547
+ if (imagePathOrUrl.startsWith('http://') || imagePathOrUrl.startsWith('https://')) {
548
+ const resp = await axios_1.default.get(imagePathOrUrl, { responseType: 'arraybuffer', timeout: 30000 });
549
+ imageBuffer = Buffer.from(resp.data);
550
+ const urlPath = new URL(imagePathOrUrl).pathname;
551
+ detectedFileName = path.basename(urlPath) || `image_${Date.now()}.png`;
552
+ }
553
+ else {
554
+ if (!fs.existsSync(imagePathOrUrl)) {
555
+ results.push({ blockId, error: `File not found: ${imagePathOrUrl}` });
556
+ continue;
557
+ }
558
+ imageBuffer = fs.readFileSync(imagePathOrUrl);
559
+ detectedFileName = path.basename(imagePathOrUrl);
560
+ }
561
+ const finalFileName = providedFileName || detectedFileName;
562
+ const file = stream_1.Readable.from(imageBuffer);
563
+ // Step 2: Upload via SDK
564
+ const uploadData = {
565
+ file_name: finalFileName,
566
+ parent_type: 'docx_image',
567
+ parent_node: blockId,
568
+ size: imageBuffer.length,
569
+ file,
570
+ };
571
+ const uploadResponse = userAccessToken && params.useUAT
572
+ ? await client.drive.media.uploadAll({ data: uploadData }, lark.withUserAccessToken(userAccessToken))
573
+ : await client.drive.media.uploadAll({ data: uploadData });
574
+ const fileToken = uploadResponse === null || uploadResponse === void 0 ? void 0 : uploadResponse.file_token;
575
+ if (!fileToken) {
576
+ results.push({ blockId, error: 'Upload failed: no file_token returned' });
577
+ continue;
578
+ }
579
+ // Step 3: Bind image to block
580
+ const bindConfig = {
581
+ method: 'PATCH',
582
+ url: `/open-apis/docx/v1/documents/${docId}/blocks/${blockId}`,
583
+ params: { document_revision_id: -1 },
584
+ data: { replace_image: { token: fileToken } },
585
+ };
586
+ const bindResponse = userAccessToken && params.useUAT
587
+ ? await client.request(bindConfig, lark.withUserAccessToken(userAccessToken))
588
+ : await client.request(bindConfig);
589
+ results.push({
590
+ blockId,
591
+ fileToken,
592
+ success: true,
593
+ documentRevisionId: (_b = ((_a = bindResponse === null || bindResponse === void 0 ? void 0 : bindResponse.data) !== null && _a !== void 0 ? _a : bindResponse)) === null || _b === void 0 ? void 0 : _b.document_revision_id,
594
+ });
595
+ }
596
+ catch (err) {
597
+ results.push({ blockId, error: ((_c = err === null || err === void 0 ? void 0 : err.response) === null || _c === void 0 ? void 0 : _c.data) || (err === null || err === void 0 ? void 0 : err.message) || String(err) });
598
+ }
599
+ }
600
+ return { content: [{ type: 'text', text: JSON.stringify({ results }) }] };
601
+ }
602
+ catch (error) {
603
+ return {
604
+ isError: true,
605
+ content: [{ type: 'text', text: JSON.stringify(((_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
606
+ };
607
+ }
608
+ },
609
+ };
610
+ // ─── Tool: fillWhiteboard ─────────────────────────────────────────────────────
611
+ exports.larkDocxFillWhiteboardTool = {
612
+ project: 'docx',
613
+ name: 'docx.builtin.fillWhiteboard',
614
+ accessTokens: ['user', 'tenant'],
615
+ description: '[Feishu/Lark]-Docs-Document-Fill Whiteboard-Fills whiteboard blocks with PlantUML or Mermaid diagrams. Use after creating whiteboard blocks with docx.builtin.batchCreateBlocks. The whiteboardId is the token from the board.token field.',
616
+ schema: {
617
+ data: zod_1.z.object({
618
+ whiteboards: WhiteboardFillArraySchema,
619
+ }),
620
+ useUAT: zod_1.z.boolean().optional(),
621
+ },
622
+ customHandler: async (client, params, options) => {
623
+ var _a, _b, _c;
624
+ try {
625
+ const { userAccessToken } = options || {};
626
+ const whiteboards = params.data.whiteboards;
627
+ if (!whiteboards || whiteboards.length === 0) {
628
+ return { isError: true, content: [{ type: 'text', text: 'ERROR: whiteboards array is empty' }] };
629
+ }
630
+ const results = [];
631
+ let successCount = 0;
632
+ let failCount = 0;
633
+ for (const item of whiteboards) {
634
+ try {
635
+ const reqConfig = {
636
+ method: 'POST',
637
+ url: `/open-apis/board/v1/whiteboards/${item.whiteboardId}/nodes/plantuml`,
638
+ data: { plant_uml_code: item.code, style_type: 1, syntax_type: item.syntax_type },
639
+ };
640
+ const response = userAccessToken && params.useUAT
641
+ ? await client.request(reqConfig, lark.withUserAccessToken(userAccessToken))
642
+ : await client.request(reqConfig);
643
+ const result = (_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : response;
644
+ successCount++;
645
+ results.push({
646
+ whiteboardId: item.whiteboardId,
647
+ syntaxType: item.syntax_type === 1 ? 'PlantUML' : 'Mermaid',
648
+ status: 'success',
649
+ nodeId: result === null || result === void 0 ? void 0 : result.node_id,
650
+ });
651
+ }
652
+ catch (err) {
653
+ failCount++;
654
+ results.push({
655
+ whiteboardId: item.whiteboardId,
656
+ syntaxType: item.syntax_type === 1 ? 'PlantUML' : 'Mermaid',
657
+ status: 'failed',
658
+ error: ((_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.data) || (err === null || err === void 0 ? void 0 : err.message) || String(err),
659
+ });
660
+ }
661
+ }
662
+ return {
663
+ content: [{
664
+ type: 'text',
665
+ text: JSON.stringify({ total: whiteboards.length, success: successCount, failed: failCount, results }),
666
+ }],
667
+ };
668
+ }
669
+ catch (error) {
670
+ return {
671
+ isError: true,
672
+ content: [{ type: 'text', text: JSON.stringify(((_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.data) || (error === null || error === void 0 ? void 0 : error.message) || error) }],
673
+ };
674
+ }
675
+ },
676
+ };
677
+ // ─── Export all block tools ───────────────────────────────────────────────────
678
+ exports.docxBlockTools = [
679
+ exports.larkDocxGetDocumentBlocksTool,
680
+ exports.larkDocxBatchCreateBlocksTool,
681
+ exports.larkDocxUpdateBlockTextTool,
682
+ exports.larkDocxDeleteBlocksTool,
683
+ exports.larkDocxCreateTableTool,
684
+ exports.larkDocxUploadImageTool,
685
+ exports.larkDocxFillWhiteboardTool,
686
+ ];