@larksuite/openclaw-lark 2026.3.9

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 (689) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +283 -0
  3. package/index.d.ts +37 -0
  4. package/index.d.ts.map +1 -0
  5. package/index.js +119 -0
  6. package/index.js.map +1 -0
  7. package/openclaw.plugin.json +10 -0
  8. package/package.json +47 -0
  9. package/skills/feishu-bitable/SKILL.md +248 -0
  10. package/skills/feishu-bitable/references/examples.md +813 -0
  11. package/skills/feishu-bitable/references/field-properties.md +763 -0
  12. package/skills/feishu-bitable/references/record-values.md +911 -0
  13. package/skills/feishu-calendar/SKILL.md +244 -0
  14. package/skills/feishu-channel-rules/SKILL.md +18 -0
  15. package/skills/feishu-channel-rules/references/markdown-syntax.md +138 -0
  16. package/skills/feishu-create-doc/SKILL.md +719 -0
  17. package/skills/feishu-fetch-doc/SKILL.md +93 -0
  18. package/skills/feishu-im-read/SKILL.md +163 -0
  19. package/skills/feishu-task/SKILL.md +293 -0
  20. package/skills/feishu-troubleshoot/SKILL.md +70 -0
  21. package/skills/feishu-update-doc/SKILL.md +285 -0
  22. package/src/card/builder.d.ts +100 -0
  23. package/src/card/builder.d.ts.map +1 -0
  24. package/src/card/builder.js +381 -0
  25. package/src/card/builder.js.map +1 -0
  26. package/src/card/cardkit.d.ts +91 -0
  27. package/src/card/cardkit.d.ts.map +1 -0
  28. package/src/card/cardkit.js +182 -0
  29. package/src/card/cardkit.js.map +1 -0
  30. package/src/card/flush-controller.d.ts +46 -0
  31. package/src/card/flush-controller.d.ts.map +1 -0
  32. package/src/card/flush-controller.js +135 -0
  33. package/src/card/flush-controller.js.map +1 -0
  34. package/src/card/markdown-style.d.ts +17 -0
  35. package/src/card/markdown-style.d.ts.map +1 -0
  36. package/src/card/markdown-style.js +98 -0
  37. package/src/card/markdown-style.js.map +1 -0
  38. package/src/card/reply-dispatcher-types.d.ts +121 -0
  39. package/src/card/reply-dispatcher-types.d.ts.map +1 -0
  40. package/src/card/reply-dispatcher-types.js +58 -0
  41. package/src/card/reply-dispatcher-types.js.map +1 -0
  42. package/src/card/reply-dispatcher.d.ts +16 -0
  43. package/src/card/reply-dispatcher.d.ts.map +1 -0
  44. package/src/card/reply-dispatcher.js +293 -0
  45. package/src/card/reply-dispatcher.js.map +1 -0
  46. package/src/card/reply-mode.d.ts +39 -0
  47. package/src/card/reply-mode.d.ts.map +1 -0
  48. package/src/card/reply-mode.js +66 -0
  49. package/src/card/reply-mode.js.map +1 -0
  50. package/src/card/streaming-card-controller.d.ts +88 -0
  51. package/src/card/streaming-card-controller.d.ts.map +1 -0
  52. package/src/card/streaming-card-controller.js +717 -0
  53. package/src/card/streaming-card-controller.js.map +1 -0
  54. package/src/card/unavailable-guard.d.ts +36 -0
  55. package/src/card/unavailable-guard.d.ts.map +1 -0
  56. package/src/card/unavailable-guard.js +84 -0
  57. package/src/card/unavailable-guard.js.map +1 -0
  58. package/src/channel/abort-detect.d.ts +35 -0
  59. package/src/channel/abort-detect.d.ts.map +1 -0
  60. package/src/channel/abort-detect.js +125 -0
  61. package/src/channel/abort-detect.js.map +1 -0
  62. package/src/channel/chat-queue.d.ts +42 -0
  63. package/src/channel/chat-queue.d.ts.map +1 -0
  64. package/src/channel/chat-queue.js +59 -0
  65. package/src/channel/chat-queue.js.map +1 -0
  66. package/src/channel/config-adapter.d.ts +24 -0
  67. package/src/channel/config-adapter.d.ts.map +1 -0
  68. package/src/channel/config-adapter.js +102 -0
  69. package/src/channel/config-adapter.js.map +1 -0
  70. package/src/channel/directory.d.ts +58 -0
  71. package/src/channel/directory.d.ts.map +1 -0
  72. package/src/channel/directory.js +192 -0
  73. package/src/channel/directory.js.map +1 -0
  74. package/src/channel/event-handlers.d.ts +16 -0
  75. package/src/channel/event-handlers.d.ts.map +1 -0
  76. package/src/channel/event-handlers.js +222 -0
  77. package/src/channel/event-handlers.js.map +1 -0
  78. package/src/channel/monitor.d.ts +18 -0
  79. package/src/channel/monitor.d.ts.map +1 -0
  80. package/src/channel/monitor.js +128 -0
  81. package/src/channel/monitor.js.map +1 -0
  82. package/src/channel/onboarding-config.d.ts +18 -0
  83. package/src/channel/onboarding-config.d.ts.map +1 -0
  84. package/src/channel/onboarding-config.js +89 -0
  85. package/src/channel/onboarding-config.js.map +1 -0
  86. package/src/channel/onboarding-migrate.d.ts +26 -0
  87. package/src/channel/onboarding-migrate.d.ts.map +1 -0
  88. package/src/channel/onboarding-migrate.js +68 -0
  89. package/src/channel/onboarding-migrate.js.map +1 -0
  90. package/src/channel/onboarding.d.ts +13 -0
  91. package/src/channel/onboarding.d.ts.map +1 -0
  92. package/src/channel/onboarding.js +297 -0
  93. package/src/channel/onboarding.js.map +1 -0
  94. package/src/channel/plugin.d.ts +14 -0
  95. package/src/channel/plugin.d.ts.map +1 -0
  96. package/src/channel/plugin.js +279 -0
  97. package/src/channel/plugin.js.map +1 -0
  98. package/src/channel/probe.d.ts +15 -0
  99. package/src/channel/probe.d.ts.map +1 -0
  100. package/src/channel/probe.js +22 -0
  101. package/src/channel/probe.js.map +1 -0
  102. package/src/channel/types.d.ts +37 -0
  103. package/src/channel/types.d.ts.map +1 -0
  104. package/src/channel/types.js +8 -0
  105. package/src/channel/types.js.map +1 -0
  106. package/src/commands/auth.d.ts +16 -0
  107. package/src/commands/auth.d.ts.map +1 -0
  108. package/src/commands/auth.js +85 -0
  109. package/src/commands/auth.js.map +1 -0
  110. package/src/commands/diagnose.d.ts +70 -0
  111. package/src/commands/diagnose.d.ts.map +1 -0
  112. package/src/commands/diagnose.js +808 -0
  113. package/src/commands/diagnose.js.map +1 -0
  114. package/src/commands/doctor.d.ts +18 -0
  115. package/src/commands/doctor.d.ts.map +1 -0
  116. package/src/commands/doctor.js +439 -0
  117. package/src/commands/doctor.js.map +1 -0
  118. package/src/commands/index.d.ts +9 -0
  119. package/src/commands/index.d.ts.map +1 -0
  120. package/src/commands/index.js +208 -0
  121. package/src/commands/index.js.map +1 -0
  122. package/src/core/accounts.d.ts +38 -0
  123. package/src/core/accounts.d.ts.map +1 -0
  124. package/src/core/accounts.js +179 -0
  125. package/src/core/accounts.js.map +1 -0
  126. package/src/core/agent-config.d.ts +101 -0
  127. package/src/core/agent-config.d.ts.map +1 -0
  128. package/src/core/agent-config.js +140 -0
  129. package/src/core/agent-config.js.map +1 -0
  130. package/src/core/api-error.d.ts +49 -0
  131. package/src/core/api-error.d.ts.map +1 -0
  132. package/src/core/api-error.js +113 -0
  133. package/src/core/api-error.js.map +1 -0
  134. package/src/core/app-owner-fallback.d.ts +22 -0
  135. package/src/core/app-owner-fallback.d.ts.map +1 -0
  136. package/src/core/app-owner-fallback.js +39 -0
  137. package/src/core/app-owner-fallback.js.map +1 -0
  138. package/src/core/app-scope-checker.d.ts +88 -0
  139. package/src/core/app-scope-checker.d.ts.map +1 -0
  140. package/src/core/app-scope-checker.js +191 -0
  141. package/src/core/app-scope-checker.js.map +1 -0
  142. package/src/core/auth-errors.d.ts +143 -0
  143. package/src/core/auth-errors.d.ts.map +1 -0
  144. package/src/core/auth-errors.js +156 -0
  145. package/src/core/auth-errors.js.map +1 -0
  146. package/src/core/chat-info-cache.d.ts +58 -0
  147. package/src/core/chat-info-cache.d.ts.map +1 -0
  148. package/src/core/chat-info-cache.js +153 -0
  149. package/src/core/chat-info-cache.js.map +1 -0
  150. package/src/core/config-schema.d.ts +449 -0
  151. package/src/core/config-schema.d.ts.map +1 -0
  152. package/src/core/config-schema.js +201 -0
  153. package/src/core/config-schema.js.map +1 -0
  154. package/src/core/device-flow.d.ts +78 -0
  155. package/src/core/device-flow.d.ts.map +1 -0
  156. package/src/core/device-flow.js +213 -0
  157. package/src/core/device-flow.js.map +1 -0
  158. package/src/core/feishu-fetch.d.ts +19 -0
  159. package/src/core/feishu-fetch.d.ts.map +1 -0
  160. package/src/core/feishu-fetch.js +26 -0
  161. package/src/core/feishu-fetch.js.map +1 -0
  162. package/src/core/footer-config.d.ts +25 -0
  163. package/src/core/footer-config.d.ts.map +1 -0
  164. package/src/core/footer-config.js +40 -0
  165. package/src/core/footer-config.js.map +1 -0
  166. package/src/core/lark-client.d.ts +109 -0
  167. package/src/core/lark-client.d.ts.map +1 -0
  168. package/src/core/lark-client.js +354 -0
  169. package/src/core/lark-client.js.map +1 -0
  170. package/src/core/lark-logger.d.ts +24 -0
  171. package/src/core/lark-logger.d.ts.map +1 -0
  172. package/src/core/lark-logger.js +155 -0
  173. package/src/core/lark-logger.js.map +1 -0
  174. package/src/core/lark-ticket.d.ts +30 -0
  175. package/src/core/lark-ticket.d.ts.map +1 -0
  176. package/src/core/lark-ticket.js +36 -0
  177. package/src/core/lark-ticket.js.map +1 -0
  178. package/src/core/message-unavailable.d.ts +54 -0
  179. package/src/core/message-unavailable.d.ts.map +1 -0
  180. package/src/core/message-unavailable.js +131 -0
  181. package/src/core/message-unavailable.js.map +1 -0
  182. package/src/core/owner-policy.d.ts +32 -0
  183. package/src/core/owner-policy.d.ts.map +1 -0
  184. package/src/core/owner-policy.js +53 -0
  185. package/src/core/owner-policy.js.map +1 -0
  186. package/src/core/permission-url.d.ts +23 -0
  187. package/src/core/permission-url.d.ts.map +1 -0
  188. package/src/core/permission-url.js +73 -0
  189. package/src/core/permission-url.js.map +1 -0
  190. package/src/core/raw-request.d.ts +28 -0
  191. package/src/core/raw-request.d.ts.map +1 -0
  192. package/src/core/raw-request.js +63 -0
  193. package/src/core/raw-request.js.map +1 -0
  194. package/src/core/scope-manager.d.ts +169 -0
  195. package/src/core/scope-manager.d.ts.map +1 -0
  196. package/src/core/scope-manager.js +214 -0
  197. package/src/core/scope-manager.js.map +1 -0
  198. package/src/core/security-check.d.ts +73 -0
  199. package/src/core/security-check.d.ts.map +1 -0
  200. package/src/core/security-check.js +175 -0
  201. package/src/core/security-check.js.map +1 -0
  202. package/src/core/shutdown-hooks.d.ts +23 -0
  203. package/src/core/shutdown-hooks.d.ts.map +1 -0
  204. package/src/core/shutdown-hooks.js +57 -0
  205. package/src/core/shutdown-hooks.js.map +1 -0
  206. package/src/core/targets.d.ts +50 -0
  207. package/src/core/targets.d.ts.map +1 -0
  208. package/src/core/targets.js +128 -0
  209. package/src/core/targets.js.map +1 -0
  210. package/src/core/token-store.d.ts +55 -0
  211. package/src/core/token-store.d.ts.map +1 -0
  212. package/src/core/token-store.js +315 -0
  213. package/src/core/token-store.js.map +1 -0
  214. package/src/core/tool-client.d.ts +177 -0
  215. package/src/core/tool-client.d.ts.map +1 -0
  216. package/src/core/tool-client.js +381 -0
  217. package/src/core/tool-client.js.map +1 -0
  218. package/src/core/tool-scopes.d.ts +154 -0
  219. package/src/core/tool-scopes.d.ts.map +1 -0
  220. package/src/core/tool-scopes.js +326 -0
  221. package/src/core/tool-scopes.js.map +1 -0
  222. package/src/core/tools-config.d.ts +35 -0
  223. package/src/core/tools-config.d.ts.map +1 -0
  224. package/src/core/tools-config.js +88 -0
  225. package/src/core/tools-config.js.map +1 -0
  226. package/src/core/types.d.ts +88 -0
  227. package/src/core/types.d.ts.map +1 -0
  228. package/src/core/types.js +12 -0
  229. package/src/core/types.js.map +1 -0
  230. package/src/core/uat-client.d.ts +47 -0
  231. package/src/core/uat-client.d.ts.map +1 -0
  232. package/src/core/uat-client.js +173 -0
  233. package/src/core/uat-client.js.map +1 -0
  234. package/src/core/version.d.ts +26 -0
  235. package/src/core/version.d.ts.map +1 -0
  236. package/src/core/version.js +50 -0
  237. package/src/core/version.js.map +1 -0
  238. package/src/messaging/converters/audio.d.ts +9 -0
  239. package/src/messaging/converters/audio.d.ts.map +1 -0
  240. package/src/messaging/converters/audio.js +22 -0
  241. package/src/messaging/converters/audio.js.map +1 -0
  242. package/src/messaging/converters/calendar.d.ts +14 -0
  243. package/src/messaging/converters/calendar.d.ts.map +1 -0
  244. package/src/messaging/converters/calendar.js +51 -0
  245. package/src/messaging/converters/calendar.js.map +1 -0
  246. package/src/messaging/converters/content-converter.d.ts +42 -0
  247. package/src/messaging/converters/content-converter.d.ts.map +1 -0
  248. package/src/messaging/converters/content-converter.js +107 -0
  249. package/src/messaging/converters/content-converter.js.map +1 -0
  250. package/src/messaging/converters/file.d.ts +9 -0
  251. package/src/messaging/converters/file.d.ts.map +1 -0
  252. package/src/messaging/converters/file.js +21 -0
  253. package/src/messaging/converters/file.js.map +1 -0
  254. package/src/messaging/converters/folder.d.ts +9 -0
  255. package/src/messaging/converters/folder.d.ts.map +1 -0
  256. package/src/messaging/converters/folder.js +21 -0
  257. package/src/messaging/converters/folder.js.map +1 -0
  258. package/src/messaging/converters/hongbao.d.ts +9 -0
  259. package/src/messaging/converters/hongbao.d.ts.map +1 -0
  260. package/src/messaging/converters/hongbao.js +17 -0
  261. package/src/messaging/converters/hongbao.js.map +1 -0
  262. package/src/messaging/converters/image.d.ts +9 -0
  263. package/src/messaging/converters/image.d.ts.map +1 -0
  264. package/src/messaging/converters/image.js +19 -0
  265. package/src/messaging/converters/image.js.map +1 -0
  266. package/src/messaging/converters/index.d.ts +9 -0
  267. package/src/messaging/converters/index.d.ts.map +1 -0
  268. package/src/messaging/converters/index.js +51 -0
  269. package/src/messaging/converters/index.js.map +1 -0
  270. package/src/messaging/converters/interactive/card-converter.d.ts +77 -0
  271. package/src/messaging/converters/interactive/card-converter.d.ts.map +1 -0
  272. package/src/messaging/converters/interactive/card-converter.js +1174 -0
  273. package/src/messaging/converters/interactive/card-converter.js.map +1 -0
  274. package/src/messaging/converters/interactive/card-utils.d.ts +10 -0
  275. package/src/messaging/converters/interactive/card-utils.d.ts.map +1 -0
  276. package/src/messaging/converters/interactive/card-utils.js +43 -0
  277. package/src/messaging/converters/interactive/card-utils.js.map +1 -0
  278. package/src/messaging/converters/interactive/index.d.ts +9 -0
  279. package/src/messaging/converters/interactive/index.d.ts.map +1 -0
  280. package/src/messaging/converters/interactive/index.js +22 -0
  281. package/src/messaging/converters/interactive/index.js.map +1 -0
  282. package/src/messaging/converters/interactive/legacy.d.ts +12 -0
  283. package/src/messaging/converters/interactive/legacy.d.ts.map +1 -0
  284. package/src/messaging/converters/interactive/legacy.js +58 -0
  285. package/src/messaging/converters/interactive/legacy.js.map +1 -0
  286. package/src/messaging/converters/interactive/types.d.ts +24 -0
  287. package/src/messaging/converters/interactive/types.d.ts.map +1 -0
  288. package/src/messaging/converters/interactive/types.js +25 -0
  289. package/src/messaging/converters/interactive/types.js.map +1 -0
  290. package/src/messaging/converters/location.d.ts +9 -0
  291. package/src/messaging/converters/location.d.ts.map +1 -0
  292. package/src/messaging/converters/location.js +20 -0
  293. package/src/messaging/converters/location.js.map +1 -0
  294. package/src/messaging/converters/merge-forward.d.ts +33 -0
  295. package/src/messaging/converters/merge-forward.d.ts.map +1 -0
  296. package/src/messaging/converters/merge-forward.js +226 -0
  297. package/src/messaging/converters/merge-forward.js.map +1 -0
  298. package/src/messaging/converters/post.d.ts +12 -0
  299. package/src/messaging/converters/post.d.ts.map +1 -0
  300. package/src/messaging/converters/post.js +136 -0
  301. package/src/messaging/converters/post.js.map +1 -0
  302. package/src/messaging/converters/share.d.ts +10 -0
  303. package/src/messaging/converters/share.d.ts.map +1 -0
  304. package/src/messaging/converters/share.js +24 -0
  305. package/src/messaging/converters/share.js.map +1 -0
  306. package/src/messaging/converters/sticker.d.ts +9 -0
  307. package/src/messaging/converters/sticker.d.ts.map +1 -0
  308. package/src/messaging/converters/sticker.js +19 -0
  309. package/src/messaging/converters/sticker.js.map +1 -0
  310. package/src/messaging/converters/system.d.ts +13 -0
  311. package/src/messaging/converters/system.d.ts.map +1 -0
  312. package/src/messaging/converters/system.js +33 -0
  313. package/src/messaging/converters/system.js.map +1 -0
  314. package/src/messaging/converters/text.d.ts +9 -0
  315. package/src/messaging/converters/text.d.ts.map +1 -0
  316. package/src/messaging/converters/text.js +15 -0
  317. package/src/messaging/converters/text.js.map +1 -0
  318. package/src/messaging/converters/todo.d.ts +9 -0
  319. package/src/messaging/converters/todo.d.ts.map +1 -0
  320. package/src/messaging/converters/todo.js +42 -0
  321. package/src/messaging/converters/todo.js.map +1 -0
  322. package/src/messaging/converters/types.d.ts +108 -0
  323. package/src/messaging/converters/types.d.ts.map +1 -0
  324. package/src/messaging/converters/types.js +8 -0
  325. package/src/messaging/converters/types.js.map +1 -0
  326. package/src/messaging/converters/unknown.d.ts +9 -0
  327. package/src/messaging/converters/unknown.d.ts.map +1 -0
  328. package/src/messaging/converters/unknown.js +17 -0
  329. package/src/messaging/converters/unknown.js.map +1 -0
  330. package/src/messaging/converters/utils.d.ts +23 -0
  331. package/src/messaging/converters/utils.d.ts.map +1 -0
  332. package/src/messaging/converters/utils.js +52 -0
  333. package/src/messaging/converters/utils.js.map +1 -0
  334. package/src/messaging/converters/video-chat.d.ts +9 -0
  335. package/src/messaging/converters/video-chat.d.ts.map +1 -0
  336. package/src/messaging/converters/video-chat.js +24 -0
  337. package/src/messaging/converters/video-chat.js.map +1 -0
  338. package/src/messaging/converters/video.d.ts +9 -0
  339. package/src/messaging/converters/video.d.ts.map +1 -0
  340. package/src/messaging/converters/video.js +33 -0
  341. package/src/messaging/converters/video.js.map +1 -0
  342. package/src/messaging/converters/vote.d.ts +9 -0
  343. package/src/messaging/converters/vote.d.ts.map +1 -0
  344. package/src/messaging/converters/vote.js +25 -0
  345. package/src/messaging/converters/vote.js.map +1 -0
  346. package/src/messaging/inbound/dedup.d.ts +60 -0
  347. package/src/messaging/inbound/dedup.d.ts.map +1 -0
  348. package/src/messaging/inbound/dedup.js +117 -0
  349. package/src/messaging/inbound/dedup.js.map +1 -0
  350. package/src/messaging/inbound/dispatch-builders.d.ts +84 -0
  351. package/src/messaging/inbound/dispatch-builders.d.ts.map +1 -0
  352. package/src/messaging/inbound/dispatch-builders.js +153 -0
  353. package/src/messaging/inbound/dispatch-builders.js.map +1 -0
  354. package/src/messaging/inbound/dispatch-commands.d.ts +28 -0
  355. package/src/messaging/inbound/dispatch-commands.d.ts.map +1 -0
  356. package/src/messaging/inbound/dispatch-commands.js +113 -0
  357. package/src/messaging/inbound/dispatch-commands.js.map +1 -0
  358. package/src/messaging/inbound/dispatch-context.d.ts +68 -0
  359. package/src/messaging/inbound/dispatch-context.d.ts.map +1 -0
  360. package/src/messaging/inbound/dispatch-context.js +137 -0
  361. package/src/messaging/inbound/dispatch-context.js.map +1 -0
  362. package/src/messaging/inbound/dispatch.d.ts +48 -0
  363. package/src/messaging/inbound/dispatch.d.ts.map +1 -0
  364. package/src/messaging/inbound/dispatch.js +193 -0
  365. package/src/messaging/inbound/dispatch.js.map +1 -0
  366. package/src/messaging/inbound/enrich.d.ts +103 -0
  367. package/src/messaging/inbound/enrich.d.ts.map +1 -0
  368. package/src/messaging/inbound/enrich.js +228 -0
  369. package/src/messaging/inbound/enrich.js.map +1 -0
  370. package/src/messaging/inbound/gate-effects.d.ts +24 -0
  371. package/src/messaging/inbound/gate-effects.d.ts.map +1 -0
  372. package/src/messaging/inbound/gate-effects.js +44 -0
  373. package/src/messaging/inbound/gate-effects.js.map +1 -0
  374. package/src/messaging/inbound/gate.d.ts +61 -0
  375. package/src/messaging/inbound/gate.d.ts.map +1 -0
  376. package/src/messaging/inbound/gate.js +234 -0
  377. package/src/messaging/inbound/gate.js.map +1 -0
  378. package/src/messaging/inbound/handler.d.ts +36 -0
  379. package/src/messaging/inbound/handler.d.ts.map +1 -0
  380. package/src/messaging/inbound/handler.js +174 -0
  381. package/src/messaging/inbound/handler.js.map +1 -0
  382. package/src/messaging/inbound/media-resolver.d.ts +33 -0
  383. package/src/messaging/inbound/media-resolver.d.ts.map +1 -0
  384. package/src/messaging/inbound/media-resolver.js +88 -0
  385. package/src/messaging/inbound/media-resolver.js.map +1 -0
  386. package/src/messaging/inbound/mention.d.ts +40 -0
  387. package/src/messaging/inbound/mention.d.ts.map +1 -0
  388. package/src/messaging/inbound/mention.js +82 -0
  389. package/src/messaging/inbound/mention.js.map +1 -0
  390. package/src/messaging/inbound/parse-io.d.ts +51 -0
  391. package/src/messaging/inbound/parse-io.d.ts.map +1 -0
  392. package/src/messaging/inbound/parse-io.js +82 -0
  393. package/src/messaging/inbound/parse-io.js.map +1 -0
  394. package/src/messaging/inbound/parse.d.ts +29 -0
  395. package/src/messaging/inbound/parse.d.ts.map +1 -0
  396. package/src/messaging/inbound/parse.js +107 -0
  397. package/src/messaging/inbound/parse.js.map +1 -0
  398. package/src/messaging/inbound/permission.d.ts +18 -0
  399. package/src/messaging/inbound/permission.d.ts.map +1 -0
  400. package/src/messaging/inbound/permission.js +41 -0
  401. package/src/messaging/inbound/permission.js.map +1 -0
  402. package/src/messaging/inbound/policy.d.ts +95 -0
  403. package/src/messaging/inbound/policy.d.ts.map +1 -0
  404. package/src/messaging/inbound/policy.js +161 -0
  405. package/src/messaging/inbound/policy.js.map +1 -0
  406. package/src/messaging/inbound/reaction-handler.d.ts +62 -0
  407. package/src/messaging/inbound/reaction-handler.d.ts.map +1 -0
  408. package/src/messaging/inbound/reaction-handler.js +221 -0
  409. package/src/messaging/inbound/reaction-handler.js.map +1 -0
  410. package/src/messaging/inbound/user-name-cache.d.ts +83 -0
  411. package/src/messaging/inbound/user-name-cache.d.ts.map +1 -0
  412. package/src/messaging/inbound/user-name-cache.js +242 -0
  413. package/src/messaging/inbound/user-name-cache.js.map +1 -0
  414. package/src/messaging/outbound/actions.d.ts +17 -0
  415. package/src/messaging/outbound/actions.d.ts.map +1 -0
  416. package/src/messaging/outbound/actions.js +310 -0
  417. package/src/messaging/outbound/actions.js.map +1 -0
  418. package/src/messaging/outbound/chat-manage.d.ts +65 -0
  419. package/src/messaging/outbound/chat-manage.d.ts.map +1 -0
  420. package/src/messaging/outbound/chat-manage.js +112 -0
  421. package/src/messaging/outbound/chat-manage.js.map +1 -0
  422. package/src/messaging/outbound/deliver.d.ts +156 -0
  423. package/src/messaging/outbound/deliver.d.ts.map +1 -0
  424. package/src/messaging/outbound/deliver.js +299 -0
  425. package/src/messaging/outbound/deliver.js.map +1 -0
  426. package/src/messaging/outbound/fetch.d.ts +13 -0
  427. package/src/messaging/outbound/fetch.d.ts.map +1 -0
  428. package/src/messaging/outbound/fetch.js +13 -0
  429. package/src/messaging/outbound/fetch.js.map +1 -0
  430. package/src/messaging/outbound/forward.d.ts +27 -0
  431. package/src/messaging/outbound/forward.d.ts.map +1 -0
  432. package/src/messaging/outbound/forward.js +49 -0
  433. package/src/messaging/outbound/forward.js.map +1 -0
  434. package/src/messaging/outbound/media-url-utils.d.ts +30 -0
  435. package/src/messaging/outbound/media-url-utils.d.ts.map +1 -0
  436. package/src/messaging/outbound/media-url-utils.js +131 -0
  437. package/src/messaging/outbound/media-url-utils.js.map +1 -0
  438. package/src/messaging/outbound/media.d.ts +256 -0
  439. package/src/messaging/outbound/media.d.ts.map +1 -0
  440. package/src/messaging/outbound/media.js +749 -0
  441. package/src/messaging/outbound/media.js.map +1 -0
  442. package/src/messaging/outbound/outbound.d.ts +90 -0
  443. package/src/messaging/outbound/outbound.d.ts.map +1 -0
  444. package/src/messaging/outbound/outbound.js +112 -0
  445. package/src/messaging/outbound/outbound.js.map +1 -0
  446. package/src/messaging/outbound/reactions.d.ts +125 -0
  447. package/src/messaging/outbound/reactions.d.ts.map +1 -0
  448. package/src/messaging/outbound/reactions.js +379 -0
  449. package/src/messaging/outbound/reactions.js.map +1 -0
  450. package/src/messaging/outbound/send.d.ts +136 -0
  451. package/src/messaging/outbound/send.d.ts.map +1 -0
  452. package/src/messaging/outbound/send.js +289 -0
  453. package/src/messaging/outbound/send.js.map +1 -0
  454. package/src/messaging/outbound/typing.d.ts +61 -0
  455. package/src/messaging/outbound/typing.d.ts.map +1 -0
  456. package/src/messaging/outbound/typing.js +136 -0
  457. package/src/messaging/outbound/typing.js.map +1 -0
  458. package/src/messaging/shared/message-lookup.d.ts +55 -0
  459. package/src/messaging/shared/message-lookup.d.ts.map +1 -0
  460. package/src/messaging/shared/message-lookup.js +118 -0
  461. package/src/messaging/shared/message-lookup.js.map +1 -0
  462. package/src/messaging/types.d.ts +177 -0
  463. package/src/messaging/types.d.ts.map +1 -0
  464. package/src/messaging/types.js +11 -0
  465. package/src/messaging/types.js.map +1 -0
  466. package/src/tools/auto-auth.d.ts +57 -0
  467. package/src/tools/auto-auth.d.ts.map +1 -0
  468. package/src/tools/auto-auth.js +925 -0
  469. package/src/tools/auto-auth.js.map +1 -0
  470. package/src/tools/helpers.d.ts +220 -0
  471. package/src/tools/helpers.d.ts.map +1 -0
  472. package/src/tools/helpers.js +298 -0
  473. package/src/tools/helpers.js.map +1 -0
  474. package/src/tools/mcp/doc/create.d.ts +13 -0
  475. package/src/tools/mcp/doc/create.d.ts.map +1 -0
  476. package/src/tools/mcp/doc/create.js +45 -0
  477. package/src/tools/mcp/doc/create.js.map +1 -0
  478. package/src/tools/mcp/doc/fetch.d.ts +13 -0
  479. package/src/tools/mcp/doc/fetch.d.ts.map +1 -0
  480. package/src/tools/mcp/doc/fetch.js +37 -0
  481. package/src/tools/mcp/doc/fetch.js.map +1 -0
  482. package/src/tools/mcp/doc/index.d.ts +13 -0
  483. package/src/tools/mcp/doc/index.d.ts.map +1 -0
  484. package/src/tools/mcp/doc/index.js +42 -0
  485. package/src/tools/mcp/doc/index.js.map +1 -0
  486. package/src/tools/mcp/doc/update.d.ts +13 -0
  487. package/src/tools/mcp/doc/update.d.ts.map +1 -0
  488. package/src/tools/mcp/doc/update.js +62 -0
  489. package/src/tools/mcp/doc/update.js.map +1 -0
  490. package/src/tools/mcp/shared.d.ts +58 -0
  491. package/src/tools/mcp/shared.d.ts.map +1 -0
  492. package/src/tools/mcp/shared.js +224 -0
  493. package/src/tools/mcp/shared.js.map +1 -0
  494. package/src/tools/oapi/bitable/app-table-field.d.ts +17 -0
  495. package/src/tools/oapi/bitable/app-table-field.d.ts.map +1 -0
  496. package/src/tools/oapi/bitable/app-table-field.js +224 -0
  497. package/src/tools/oapi/bitable/app-table-field.js.map +1 -0
  498. package/src/tools/oapi/bitable/app-table-record.d.ts +21 -0
  499. package/src/tools/oapi/bitable/app-table-record.d.ts.map +1 -0
  500. package/src/tools/oapi/bitable/app-table-record.js +449 -0
  501. package/src/tools/oapi/bitable/app-table-record.js.map +1 -0
  502. package/src/tools/oapi/bitable/app-table-view.d.ts +18 -0
  503. package/src/tools/oapi/bitable/app-table-view.d.ts.map +1 -0
  504. package/src/tools/oapi/bitable/app-table-view.js +197 -0
  505. package/src/tools/oapi/bitable/app-table-view.js.map +1 -0
  506. package/src/tools/oapi/bitable/app-table.d.ts +20 -0
  507. package/src/tools/oapi/bitable/app-table.d.ts.map +1 -0
  508. package/src/tools/oapi/bitable/app-table.js +249 -0
  509. package/src/tools/oapi/bitable/app-table.js.map +1 -0
  510. package/src/tools/oapi/bitable/app.d.ts +19 -0
  511. package/src/tools/oapi/bitable/app.d.ts.map +1 -0
  512. package/src/tools/oapi/bitable/app.js +188 -0
  513. package/src/tools/oapi/bitable/app.js.map +1 -0
  514. package/src/tools/oapi/bitable/index.d.ts +10 -0
  515. package/src/tools/oapi/bitable/index.d.ts.map +1 -0
  516. package/src/tools/oapi/bitable/index.js +10 -0
  517. package/src/tools/oapi/bitable/index.js.map +1 -0
  518. package/src/tools/oapi/calendar/calendar.d.ts +16 -0
  519. package/src/tools/oapi/calendar/calendar.d.ts.map +1 -0
  520. package/src/tools/oapi/calendar/calendar.js +124 -0
  521. package/src/tools/oapi/calendar/calendar.js.map +1 -0
  522. package/src/tools/oapi/calendar/event-attendee.d.ts +17 -0
  523. package/src/tools/oapi/calendar/event-attendee.d.ts.map +1 -0
  524. package/src/tools/oapi/calendar/event-attendee.js +275 -0
  525. package/src/tools/oapi/calendar/event-attendee.js.map +1 -0
  526. package/src/tools/oapi/calendar/event.d.ts +17 -0
  527. package/src/tools/oapi/calendar/event.d.ts.map +1 -0
  528. package/src/tools/oapi/calendar/event.js +721 -0
  529. package/src/tools/oapi/calendar/event.js.map +1 -0
  530. package/src/tools/oapi/calendar/freebusy.d.ts +14 -0
  531. package/src/tools/oapi/calendar/freebusy.d.ts.map +1 -0
  532. package/src/tools/oapi/calendar/freebusy.js +113 -0
  533. package/src/tools/oapi/calendar/freebusy.js.map +1 -0
  534. package/src/tools/oapi/calendar/index.d.ts +9 -0
  535. package/src/tools/oapi/calendar/index.d.ts.map +1 -0
  536. package/src/tools/oapi/calendar/index.js +9 -0
  537. package/src/tools/oapi/calendar/index.js.map +1 -0
  538. package/src/tools/oapi/chat/chat.d.ts +17 -0
  539. package/src/tools/oapi/chat/chat.d.ts.map +1 -0
  540. package/src/tools/oapi/chat/chat.js +126 -0
  541. package/src/tools/oapi/chat/chat.js.map +1 -0
  542. package/src/tools/oapi/chat/index.d.ts +11 -0
  543. package/src/tools/oapi/chat/index.d.ts.map +1 -0
  544. package/src/tools/oapi/chat/index.js +16 -0
  545. package/src/tools/oapi/chat/index.js.map +1 -0
  546. package/src/tools/oapi/chat/members.d.ts +12 -0
  547. package/src/tools/oapi/chat/members.d.ts.map +1 -0
  548. package/src/tools/oapi/chat/members.js +83 -0
  549. package/src/tools/oapi/chat/members.js.map +1 -0
  550. package/src/tools/oapi/common/get-user.d.ts +13 -0
  551. package/src/tools/oapi/common/get-user.d.ts.map +1 -0
  552. package/src/tools/oapi/common/get-user.js +108 -0
  553. package/src/tools/oapi/common/get-user.js.map +1 -0
  554. package/src/tools/oapi/common/index.d.ts +7 -0
  555. package/src/tools/oapi/common/index.d.ts.map +1 -0
  556. package/src/tools/oapi/common/index.js +7 -0
  557. package/src/tools/oapi/common/index.js.map +1 -0
  558. package/src/tools/oapi/common/search-user.d.ts +12 -0
  559. package/src/tools/oapi/common/search-user.d.ts.map +1 -0
  560. package/src/tools/oapi/common/search-user.js +75 -0
  561. package/src/tools/oapi/common/search-user.js.map +1 -0
  562. package/src/tools/oapi/drive/doc-comments.d.ts +16 -0
  563. package/src/tools/oapi/drive/doc-comments.d.ts.map +1 -0
  564. package/src/tools/oapi/drive/doc-comments.js +288 -0
  565. package/src/tools/oapi/drive/doc-comments.js.map +1 -0
  566. package/src/tools/oapi/drive/doc-media.d.ts +20 -0
  567. package/src/tools/oapi/drive/doc-media.d.ts.map +1 -0
  568. package/src/tools/oapi/drive/doc-media.js +337 -0
  569. package/src/tools/oapi/drive/doc-media.js.map +1 -0
  570. package/src/tools/oapi/drive/file.d.ts +20 -0
  571. package/src/tools/oapi/drive/file.d.ts.map +1 -0
  572. package/src/tools/oapi/drive/file.js +485 -0
  573. package/src/tools/oapi/drive/file.js.map +1 -0
  574. package/src/tools/oapi/drive/index.d.ts +13 -0
  575. package/src/tools/oapi/drive/index.d.ts.map +1 -0
  576. package/src/tools/oapi/drive/index.js +37 -0
  577. package/src/tools/oapi/drive/index.js.map +1 -0
  578. package/src/tools/oapi/helpers.d.ts +174 -0
  579. package/src/tools/oapi/helpers.d.ts.map +1 -0
  580. package/src/tools/oapi/helpers.js +341 -0
  581. package/src/tools/oapi/helpers.js.map +1 -0
  582. package/src/tools/oapi/im/format-messages.d.ts +51 -0
  583. package/src/tools/oapi/im/format-messages.d.ts.map +1 -0
  584. package/src/tools/oapi/im/format-messages.js +166 -0
  585. package/src/tools/oapi/im/format-messages.js.map +1 -0
  586. package/src/tools/oapi/im/index.d.ts +11 -0
  587. package/src/tools/oapi/im/index.d.ts.map +1 -0
  588. package/src/tools/oapi/im/index.js +18 -0
  589. package/src/tools/oapi/im/index.js.map +1 -0
  590. package/src/tools/oapi/im/message-read.d.ts +14 -0
  591. package/src/tools/oapi/im/message-read.d.ts.map +1 -0
  592. package/src/tools/oapi/im/message-read.js +412 -0
  593. package/src/tools/oapi/im/message-read.js.map +1 -0
  594. package/src/tools/oapi/im/message.d.ts +17 -0
  595. package/src/tools/oapi/im/message.d.ts.map +1 -0
  596. package/src/tools/oapi/im/message.js +171 -0
  597. package/src/tools/oapi/im/message.js.map +1 -0
  598. package/src/tools/oapi/im/resource.d.ts +14 -0
  599. package/src/tools/oapi/im/resource.d.ts.map +1 -0
  600. package/src/tools/oapi/im/resource.js +152 -0
  601. package/src/tools/oapi/im/resource.js.map +1 -0
  602. package/src/tools/oapi/im/time-utils.d.ts +47 -0
  603. package/src/tools/oapi/im/time-utils.d.ts.map +1 -0
  604. package/src/tools/oapi/im/time-utils.js +202 -0
  605. package/src/tools/oapi/im/time-utils.js.map +1 -0
  606. package/src/tools/oapi/im/user-name-uat.d.ts +24 -0
  607. package/src/tools/oapi/im/user-name-uat.d.ts.map +1 -0
  608. package/src/tools/oapi/im/user-name-uat.js +128 -0
  609. package/src/tools/oapi/im/user-name-uat.js.map +1 -0
  610. package/src/tools/oapi/index.d.ts +12 -0
  611. package/src/tools/oapi/index.d.ts.map +1 -0
  612. package/src/tools/oapi/index.js +59 -0
  613. package/src/tools/oapi/index.js.map +1 -0
  614. package/src/tools/oapi/sdk-types.d.ts +97 -0
  615. package/src/tools/oapi/sdk-types.d.ts.map +1 -0
  616. package/src/tools/oapi/sdk-types.js +13 -0
  617. package/src/tools/oapi/sdk-types.js.map +1 -0
  618. package/src/tools/oapi/search/doc-search.d.ts +14 -0
  619. package/src/tools/oapi/search/doc-search.d.ts.map +1 -0
  620. package/src/tools/oapi/search/doc-search.js +203 -0
  621. package/src/tools/oapi/search/doc-search.js.map +1 -0
  622. package/src/tools/oapi/search/index.d.ts +13 -0
  623. package/src/tools/oapi/search/index.d.ts.map +1 -0
  624. package/src/tools/oapi/search/index.js +34 -0
  625. package/src/tools/oapi/search/index.js.map +1 -0
  626. package/src/tools/oapi/sheets/index.d.ts +13 -0
  627. package/src/tools/oapi/sheets/index.d.ts.map +1 -0
  628. package/src/tools/oapi/sheets/index.js +32 -0
  629. package/src/tools/oapi/sheets/index.js.map +1 -0
  630. package/src/tools/oapi/sheets/sheet.d.ts +17 -0
  631. package/src/tools/oapi/sheets/sheet.d.ts.map +1 -0
  632. package/src/tools/oapi/sheets/sheet.js +652 -0
  633. package/src/tools/oapi/sheets/sheet.js.map +1 -0
  634. package/src/tools/oapi/task/comment.d.ts +16 -0
  635. package/src/tools/oapi/task/comment.d.ts.map +1 -0
  636. package/src/tools/oapi/task/comment.js +142 -0
  637. package/src/tools/oapi/task/comment.js.map +1 -0
  638. package/src/tools/oapi/task/index.d.ts +9 -0
  639. package/src/tools/oapi/task/index.d.ts.map +1 -0
  640. package/src/tools/oapi/task/index.js +9 -0
  641. package/src/tools/oapi/task/index.js.map +1 -0
  642. package/src/tools/oapi/task/subtask.d.ts +15 -0
  643. package/src/tools/oapi/task/subtask.d.ts.map +1 -0
  644. package/src/tools/oapi/task/subtask.js +164 -0
  645. package/src/tools/oapi/task/subtask.js.map +1 -0
  646. package/src/tools/oapi/task/task.d.ts +17 -0
  647. package/src/tools/oapi/task/task.d.ts.map +1 -0
  648. package/src/tools/oapi/task/task.js +346 -0
  649. package/src/tools/oapi/task/task.js.map +1 -0
  650. package/src/tools/oapi/task/tasklist.d.ts +22 -0
  651. package/src/tools/oapi/task/tasklist.d.ts.map +1 -0
  652. package/src/tools/oapi/task/tasklist.js +323 -0
  653. package/src/tools/oapi/task/tasklist.js.map +1 -0
  654. package/src/tools/oapi/wiki/index.d.ts +13 -0
  655. package/src/tools/oapi/wiki/index.d.ts.map +1 -0
  656. package/src/tools/oapi/wiki/index.js +35 -0
  657. package/src/tools/oapi/wiki/index.js.map +1 -0
  658. package/src/tools/oapi/wiki/space-node.d.ts +18 -0
  659. package/src/tools/oapi/wiki/space-node.d.ts.map +1 -0
  660. package/src/tools/oapi/wiki/space-node.js +253 -0
  661. package/src/tools/oapi/wiki/space-node.js.map +1 -0
  662. package/src/tools/oapi/wiki/space.d.ts +16 -0
  663. package/src/tools/oapi/wiki/space.d.ts.map +1 -0
  664. package/src/tools/oapi/wiki/space.js +132 -0
  665. package/src/tools/oapi/wiki/space.js.map +1 -0
  666. package/src/tools/oauth-batch-auth.d.ts +12 -0
  667. package/src/tools/oauth-batch-auth.d.ts.map +1 -0
  668. package/src/tools/oauth-batch-auth.js +142 -0
  669. package/src/tools/oauth-batch-auth.js.map +1 -0
  670. package/src/tools/oauth-cards.d.ts +27 -0
  671. package/src/tools/oauth-cards.d.ts.map +1 -0
  672. package/src/tools/oauth-cards.js +251 -0
  673. package/src/tools/oauth-cards.js.map +1 -0
  674. package/src/tools/oauth.d.ts +48 -0
  675. package/src/tools/oauth.d.ts.map +1 -0
  676. package/src/tools/oauth.js +619 -0
  677. package/src/tools/oauth.js.map +1 -0
  678. package/src/tools/onboarding-auth.d.ts +28 -0
  679. package/src/tools/onboarding-auth.d.ts.map +1 -0
  680. package/src/tools/onboarding-auth.js +131 -0
  681. package/src/tools/onboarding-auth.js.map +1 -0
  682. package/src/tools/tat/im/index.d.ts +16 -0
  683. package/src/tools/tat/im/index.d.ts.map +1 -0
  684. package/src/tools/tat/im/index.js +19 -0
  685. package/src/tools/tat/im/index.js.map +1 -0
  686. package/src/tools/tat/im/resource.d.ts +16 -0
  687. package/src/tools/tat/im/resource.d.ts.map +1 -0
  688. package/src/tools/tat/im/resource.js +158 -0
  689. package/src/tools/tat/im/resource.js.map +1 -0
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ *
5
+ * Pure construction functions for the agent dispatch pipeline.
6
+ *
7
+ * All functions in this module are side-effect-free: they build data
8
+ * structures (message bodies, envelope payloads, inbound context) but
9
+ * never perform I/O, send messages, or mutate external state.
10
+ */
11
+ import type { HistoryEntry } from 'openclaw/plugin-sdk';
12
+ import type { MessageContext } from '../types';
13
+ import type { DispatchContext } from './dispatch-context';
14
+ import { LarkClient } from '../../core/lark-client';
15
+ /**
16
+ * Build a `[System: ...]` mention annotation when the message @-mentions
17
+ * non-bot users. Returns `undefined` when there are no user mentions.
18
+ *
19
+ * Sender identity / chat metadata are handled by the SDK's own
20
+ * `buildInboundUserContextPrefix` (via SenderId, SenderName, ReplyToBody,
21
+ * InboundHistory, etc.), so we only inject the mention data that the SDK
22
+ * does not natively support.
23
+ */
24
+ export declare function buildMentionAnnotation(ctx: MessageContext): string | undefined;
25
+ /**
26
+ * Pure function: build the annotated message body with optional quote,
27
+ * speaker prefix, and mention annotation (for the envelope Body).
28
+ *
29
+ * Note: message_id and reply_to are now conveyed via system-event tags
30
+ * (msg:om_xxx, reply_to:om_yyy) instead of inline annotations, keeping
31
+ * the body cleaner and avoiding misleading heuristics for non-text
32
+ * message types (merge_forward, interactive cards, etc.).
33
+ */
34
+ export declare function buildMessageBody(ctx: MessageContext, quotedContent?: string): string;
35
+ /**
36
+ * Build the BodyForAgent value: the clean message content plus an
37
+ * optional mention annotation.
38
+ *
39
+ * SDK >= 2026.2.10 changed the BodyForAgent fallback chain from
40
+ * `BodyForAgent ?? Body` to `BodyForAgent ?? CommandBody ?? RawBody ?? Body`,
41
+ * so annotations embedded only in Body never reach the AI. Setting
42
+ * BodyForAgent explicitly ensures the mention annotation survives.
43
+ *
44
+ * Sender identity, reply context, and chat history are NOT duplicated
45
+ * here — they are injected by the SDK's `buildInboundUserContextPrefix`
46
+ * via the standard fields (SenderId, SenderName, ReplyToBody,
47
+ * InboundHistory) that we pass in buildInboundPayload.
48
+ *
49
+ * Note: media file paths are substituted into `ctx.content` upstream
50
+ * (handler.ts -> substituteMediaPaths) before this function is called.
51
+ * The SDK's `detectAndLoadPromptImages` will discover image paths from
52
+ * the text and inject them as multimodal content blocks.
53
+ */
54
+ export declare function buildBodyForAgent(ctx: MessageContext): string;
55
+ /**
56
+ * Unified call to `finalizeInboundContext`, eliminating the duplicated
57
+ * field-mapping between permission notification and main message paths.
58
+ */
59
+ export declare function buildInboundPayload(dc: DispatchContext, opts: {
60
+ body: string;
61
+ bodyForAgent: string;
62
+ rawBody: string;
63
+ commandBody: string;
64
+ senderName: string;
65
+ senderId: string;
66
+ messageSid: string;
67
+ wasMentioned: boolean;
68
+ replyToBody?: string;
69
+ inboundHistory?: {
70
+ sender: string;
71
+ body: string;
72
+ timestamp: number;
73
+ }[];
74
+ extraFields?: Record<string, unknown>;
75
+ }): ReturnType<typeof LarkClient.runtime.channel.reply.finalizeInboundContext>;
76
+ /**
77
+ * Format the agent envelope and prepend group chat history if applicable.
78
+ * Returns the combined body and the history key (undefined for DMs).
79
+ */
80
+ export declare function buildEnvelopeWithHistory(dc: DispatchContext, messageBody: string, chatHistories: Map<string, HistoryEntry[]> | undefined, historyLimit: number): {
81
+ combinedBody: string;
82
+ historyKey: string | undefined;
83
+ };
84
+ //# sourceMappingURL=dispatch-builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-builders.d.ts","sourceRoot":"","sources":["../../../../src/messaging/inbound/dispatch-builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQpD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAK9E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAepF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAM7D;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,GACA,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CA2B5E;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,eAAe,EACnB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,SAAS,EACtD,YAAY,EAAE,MAAM,GACnB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CA8B1D"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ *
5
+ * Pure construction functions for the agent dispatch pipeline.
6
+ *
7
+ * All functions in this module are side-effect-free: they build data
8
+ * structures (message bodies, envelope payloads, inbound context) but
9
+ * never perform I/O, send messages, or mutate external state.
10
+ */
11
+ import { buildPendingHistoryContextFromMap } from 'openclaw/plugin-sdk';
12
+ import { nonBotMentions } from './mention';
13
+ import { threadScopedKey } from '../../channel/chat-queue';
14
+ // ---------------------------------------------------------------------------
15
+ // Mention annotation
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Build a `[System: ...]` mention annotation when the message @-mentions
19
+ * non-bot users. Returns `undefined` when there are no user mentions.
20
+ *
21
+ * Sender identity / chat metadata are handled by the SDK's own
22
+ * `buildInboundUserContextPrefix` (via SenderId, SenderName, ReplyToBody,
23
+ * InboundHistory, etc.), so we only inject the mention data that the SDK
24
+ * does not natively support.
25
+ */
26
+ export function buildMentionAnnotation(ctx) {
27
+ const mentions = nonBotMentions(ctx);
28
+ if (mentions.length === 0)
29
+ return undefined;
30
+ const mentionDetails = mentions.map((t) => `${t.name} (open_id: ${t.openId})`).join(', ');
31
+ return `[System: This message @mentions the following users: ${mentionDetails}. Use these open_ids when performing actions involving these users.]`;
32
+ }
33
+ // ---------------------------------------------------------------------------
34
+ // Message body builders
35
+ // ---------------------------------------------------------------------------
36
+ /**
37
+ * Pure function: build the annotated message body with optional quote,
38
+ * speaker prefix, and mention annotation (for the envelope Body).
39
+ *
40
+ * Note: message_id and reply_to are now conveyed via system-event tags
41
+ * (msg:om_xxx, reply_to:om_yyy) instead of inline annotations, keeping
42
+ * the body cleaner and avoiding misleading heuristics for non-text
43
+ * message types (merge_forward, interactive cards, etc.).
44
+ */
45
+ export function buildMessageBody(ctx, quotedContent) {
46
+ let messageBody = ctx.content;
47
+ if (quotedContent) {
48
+ messageBody = `[Replying to: "${quotedContent}"]\n\n${ctx.content}`;
49
+ }
50
+ const speaker = ctx.senderName ?? ctx.senderId;
51
+ messageBody = `${speaker}: ${messageBody}`;
52
+ const mentionAnnotation = buildMentionAnnotation(ctx);
53
+ if (mentionAnnotation) {
54
+ messageBody += `\n\n${mentionAnnotation}`;
55
+ }
56
+ return messageBody;
57
+ }
58
+ /**
59
+ * Build the BodyForAgent value: the clean message content plus an
60
+ * optional mention annotation.
61
+ *
62
+ * SDK >= 2026.2.10 changed the BodyForAgent fallback chain from
63
+ * `BodyForAgent ?? Body` to `BodyForAgent ?? CommandBody ?? RawBody ?? Body`,
64
+ * so annotations embedded only in Body never reach the AI. Setting
65
+ * BodyForAgent explicitly ensures the mention annotation survives.
66
+ *
67
+ * Sender identity, reply context, and chat history are NOT duplicated
68
+ * here — they are injected by the SDK's `buildInboundUserContextPrefix`
69
+ * via the standard fields (SenderId, SenderName, ReplyToBody,
70
+ * InboundHistory) that we pass in buildInboundPayload.
71
+ *
72
+ * Note: media file paths are substituted into `ctx.content` upstream
73
+ * (handler.ts -> substituteMediaPaths) before this function is called.
74
+ * The SDK's `detectAndLoadPromptImages` will discover image paths from
75
+ * the text and inject them as multimodal content blocks.
76
+ */
77
+ export function buildBodyForAgent(ctx) {
78
+ const mentionAnnotation = buildMentionAnnotation(ctx);
79
+ if (mentionAnnotation) {
80
+ return `${ctx.content}\n\n${mentionAnnotation}`;
81
+ }
82
+ return ctx.content;
83
+ }
84
+ // ---------------------------------------------------------------------------
85
+ // Inbound payload builder
86
+ // ---------------------------------------------------------------------------
87
+ /**
88
+ * Unified call to `finalizeInboundContext`, eliminating the duplicated
89
+ * field-mapping between permission notification and main message paths.
90
+ */
91
+ export function buildInboundPayload(dc, opts) {
92
+ return dc.core.channel.reply.finalizeInboundContext({
93
+ // extraFields first — fixed fields below always take precedence
94
+ ...opts.extraFields,
95
+ Body: opts.body,
96
+ BodyForAgent: opts.bodyForAgent,
97
+ RawBody: opts.rawBody,
98
+ CommandBody: opts.commandBody,
99
+ From: dc.feishuFrom,
100
+ To: dc.feishuTo,
101
+ SessionKey: dc.threadSessionKey ?? dc.route.sessionKey,
102
+ AccountId: dc.route.accountId,
103
+ ChatType: dc.isGroup ? 'group' : 'direct',
104
+ GroupSubject: dc.isGroup ? dc.ctx.chatId : undefined,
105
+ SenderName: opts.senderName,
106
+ SenderId: opts.senderId,
107
+ Provider: 'feishu',
108
+ Surface: 'feishu',
109
+ MessageSid: opts.messageSid,
110
+ ReplyToBody: opts.replyToBody,
111
+ InboundHistory: opts.inboundHistory,
112
+ Timestamp: Date.now(),
113
+ WasMentioned: opts.wasMentioned,
114
+ CommandAuthorized: dc.commandAuthorized,
115
+ OriginatingChannel: 'feishu',
116
+ OriginatingTo: dc.feishuTo,
117
+ });
118
+ }
119
+ // ---------------------------------------------------------------------------
120
+ // Envelope + history builder
121
+ // ---------------------------------------------------------------------------
122
+ /**
123
+ * Format the agent envelope and prepend group chat history if applicable.
124
+ * Returns the combined body and the history key (undefined for DMs).
125
+ */
126
+ export function buildEnvelopeWithHistory(dc, messageBody, chatHistories, historyLimit) {
127
+ const body = dc.core.channel.reply.formatAgentEnvelope({
128
+ channel: 'Feishu',
129
+ from: dc.envelopeFrom,
130
+ timestamp: new Date(),
131
+ envelope: dc.envelopeOptions,
132
+ body: messageBody,
133
+ });
134
+ let combinedBody = body;
135
+ const historyKey = dc.isGroup ? threadScopedKey(dc.ctx.chatId, dc.isThread ? dc.ctx.threadId : undefined) : undefined;
136
+ if (dc.isGroup && historyKey && chatHistories) {
137
+ combinedBody = buildPendingHistoryContextFromMap({
138
+ historyMap: chatHistories,
139
+ historyKey,
140
+ limit: historyLimit,
141
+ currentMessage: combinedBody,
142
+ formatEntry: (entry) => dc.core.channel.reply.formatAgentEnvelope({
143
+ channel: 'Feishu',
144
+ from: `${dc.ctx.chatId}:${entry.sender}`,
145
+ timestamp: entry.timestamp,
146
+ body: entry.body,
147
+ envelope: dc.envelopeOptions,
148
+ }),
149
+ });
150
+ }
151
+ return { combinedBody, historyKey };
152
+ }
153
+ //# sourceMappingURL=dispatch-builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-builders.js","sourceRoot":"","sources":["../../../../src/messaging/inbound/dispatch-builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ *
5
+ * System command and permission notification dispatch for inbound messages.
6
+ *
7
+ * Handles control commands (/help, /reset, etc.) via plain-text delivery
8
+ * and permission-error notifications via the streaming card flow.
9
+ */
10
+ import type { DispatchContext } from './dispatch-context';
11
+ import type { PermissionError } from './permission';
12
+ import { LarkClient } from '../../core/lark-client';
13
+ /**
14
+ * Dispatch a permission-error notification to the agent so it can
15
+ * inform the user about the missing Feishu API scope.
16
+ */
17
+ export declare function dispatchPermissionNotification(dc: DispatchContext, permissionError: PermissionError, replyToMessageId?: string): Promise<void>;
18
+ /**
19
+ * Dispatch a system command (/help, /reset, etc.) via plain-text delivery.
20
+ * No streaming card, no "Processing..." state.
21
+ *
22
+ * When `suppressReply` is true the agent still runs (e.g. reads workspace
23
+ * files) but its text output is not forwarded to Feishu. This is used for
24
+ * bare /new and /reset commands: the SDK already sends a "done" notice
25
+ * via its own route, so the AI greeting would be redundant.
26
+ */
27
+ export declare function dispatchSystemCommand(dc: DispatchContext, ctxPayload: ReturnType<typeof LarkClient.runtime.channel.reply.finalizeInboundContext>, suppressReply?: boolean, replyToMessageId?: string): Promise<void>;
28
+ //# sourceMappingURL=dispatch-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-commands.d.ts","sourceRoot":"","sources":["../../../../src/messaging/inbound/dispatch-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAapD;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,eAAe,EACnB,eAAe,EAAE,eAAe,EAChC,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAMD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EACtF,aAAa,UAAQ,EACrB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAwCf"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ *
5
+ * System command and permission notification dispatch for inbound messages.
6
+ *
7
+ * Handles control commands (/help, /reset, etc.) via plain-text delivery
8
+ * and permission-error notifications via the streaming card flow.
9
+ */
10
+ import { larkLogger } from '../../core/lark-logger';
11
+ import { ticketElapsed } from '../../core/lark-ticket';
12
+ import { createFeishuReplyDispatcher } from '../../card/reply-dispatcher';
13
+ import { sendMessageFeishu } from '../outbound/send';
14
+ import { buildInboundPayload } from './dispatch-builders';
15
+ const log = larkLogger('inbound/dispatch-commands');
16
+ // ---------------------------------------------------------------------------
17
+ // Permission error notification
18
+ // ---------------------------------------------------------------------------
19
+ /**
20
+ * Dispatch a permission-error notification to the agent so it can
21
+ * inform the user about the missing Feishu API scope.
22
+ */
23
+ export async function dispatchPermissionNotification(dc, permissionError, replyToMessageId) {
24
+ const grantUrl = permissionError.grantUrl ?? '';
25
+ const permissionNotifyBody = `[System: The bot encountered a Feishu API permission error. Please inform the user about this issue and provide the permission grant URL for the admin to authorize. Permission grant URL: ${grantUrl}]`;
26
+ const permBody = dc.core.channel.reply.formatAgentEnvelope({
27
+ channel: 'Feishu',
28
+ from: dc.envelopeFrom,
29
+ timestamp: new Date(),
30
+ envelope: dc.envelopeOptions,
31
+ body: permissionNotifyBody,
32
+ });
33
+ const permCtx = buildInboundPayload(dc, {
34
+ body: permBody,
35
+ bodyForAgent: permissionNotifyBody,
36
+ rawBody: permissionNotifyBody,
37
+ commandBody: permissionNotifyBody,
38
+ senderName: 'system',
39
+ senderId: 'system',
40
+ messageSid: `${dc.ctx.messageId}:permission-error`,
41
+ wasMentioned: false,
42
+ });
43
+ const { dispatcher: permDispatcher, replyOptions: permReplyOptions, markDispatchIdle: markPermIdle, markFullyComplete: markPermComplete, } = createFeishuReplyDispatcher({
44
+ cfg: dc.accountScopedCfg,
45
+ agentId: dc.route.agentId,
46
+ chatId: dc.ctx.chatId,
47
+ replyToMessageId: replyToMessageId ?? dc.ctx.messageId,
48
+ accountId: dc.account.accountId,
49
+ chatType: dc.ctx.chatType,
50
+ replyInThread: dc.isThread,
51
+ });
52
+ dc.log(`feishu[${dc.account.accountId}]: dispatching permission error notification to agent`);
53
+ await dc.core.channel.reply.dispatchReplyFromConfig({
54
+ ctx: permCtx,
55
+ cfg: dc.accountScopedCfg,
56
+ dispatcher: permDispatcher,
57
+ replyOptions: permReplyOptions,
58
+ });
59
+ await permDispatcher.waitForIdle();
60
+ markPermComplete();
61
+ markPermIdle();
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // System command dispatch
65
+ // ---------------------------------------------------------------------------
66
+ /**
67
+ * Dispatch a system command (/help, /reset, etc.) via plain-text delivery.
68
+ * No streaming card, no "Processing..." state.
69
+ *
70
+ * When `suppressReply` is true the agent still runs (e.g. reads workspace
71
+ * files) but its text output is not forwarded to Feishu. This is used for
72
+ * bare /new and /reset commands: the SDK already sends a "done" notice
73
+ * via its own route, so the AI greeting would be redundant.
74
+ */
75
+ export async function dispatchSystemCommand(dc, ctxPayload, suppressReply = false, replyToMessageId) {
76
+ let delivered = false;
77
+ dc.log(`feishu[${dc.account.accountId}]: detected system command, using plain-text dispatch${suppressReply ? ' (reply suppressed)' : ''}`);
78
+ log.info(`system command detected, plain-text dispatch${suppressReply ? ', reply suppressed' : ''}`);
79
+ await dc.core.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
80
+ ctx: ctxPayload,
81
+ cfg: dc.accountScopedCfg,
82
+ dispatcherOptions: {
83
+ deliver: async (payload) => {
84
+ if (suppressReply)
85
+ return;
86
+ const text = payload.text?.trim() ?? '';
87
+ if (!text)
88
+ return;
89
+ await sendMessageFeishu({
90
+ cfg: dc.accountScopedCfg,
91
+ to: dc.ctx.chatId,
92
+ text,
93
+ replyToMessageId: replyToMessageId ?? dc.ctx.messageId,
94
+ accountId: dc.account.accountId,
95
+ replyInThread: dc.isThread,
96
+ });
97
+ delivered = true;
98
+ },
99
+ onSkip: (_payload, info) => {
100
+ if (info.reason !== 'silent') {
101
+ dc.log(`feishu[${dc.account.accountId}]: command reply skipped (reason=${info.reason})`);
102
+ }
103
+ },
104
+ onError: (err, info) => {
105
+ dc.error(`feishu[${dc.account.accountId}]: command ${info.kind} reply failed: ${String(err)}`);
106
+ },
107
+ },
108
+ replyOptions: {},
109
+ });
110
+ dc.log(`feishu[${dc.account.accountId}]: system command dispatched (delivered=${delivered})`);
111
+ log.info(`system command dispatched (delivered=${delivered}, elapsed=${ticketElapsed()}ms)`);
112
+ }
113
+ //# sourceMappingURL=dispatch-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-commands.js","sourceRoot":"","sources":["../../../../src/messaging/inbound/dispatch-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ *
5
+ * Dispatch context construction for the inbound agent dispatch pipeline.
6
+ *
7
+ * Derives all shared values needed by downstream dispatch helpers:
8
+ * logging, addressing, route resolution, thread session, and system
9
+ * event emission.
10
+ */
11
+ import type { ClawdbotConfig, RuntimeEnv } from 'openclaw/plugin-sdk';
12
+ import type { MessageContext } from '../types';
13
+ import type { LarkAccount } from '../../core/types';
14
+ import { LarkClient } from '../../core/lark-client';
15
+ export interface DispatchContext {
16
+ ctx: MessageContext;
17
+ /** account 级别的 ClawdbotConfig(channels.feishu 已替换为 per-account 合并后的配置) */
18
+ accountScopedCfg: ClawdbotConfig;
19
+ account: LarkAccount;
20
+ runtime: RuntimeEnv;
21
+ log: (...args: unknown[]) => void;
22
+ error: (...args: unknown[]) => void;
23
+ core: typeof LarkClient.runtime;
24
+ isGroup: boolean;
25
+ isThread: boolean;
26
+ feishuFrom: string;
27
+ feishuTo: string;
28
+ envelopeFrom: string;
29
+ envelopeOptions: ReturnType<typeof LarkClient.runtime.channel.reply.resolveEnvelopeFormatOptions>;
30
+ route: ReturnType<typeof LarkClient.runtime.channel.routing.resolveAgentRoute>;
31
+ threadSessionKey?: string;
32
+ commandAuthorized?: boolean;
33
+ }
34
+ /**
35
+ * Provide a safe RuntimeEnv fallback when the caller did not supply one.
36
+ * Replaces the previous unsafe `runtime as RuntimeEnv` casts.
37
+ */
38
+ export declare function ensureRuntime(runtime: RuntimeEnv | undefined): RuntimeEnv;
39
+ /**
40
+ * Derive all shared values needed by downstream helpers:
41
+ * logging, addressing, route resolution, and system event emission.
42
+ */
43
+ export declare function buildDispatchContext(params: {
44
+ ctx: MessageContext;
45
+ account: LarkAccount;
46
+ accountScopedCfg: ClawdbotConfig;
47
+ runtime?: RuntimeEnv;
48
+ commandAuthorized?: boolean;
49
+ }): DispatchContext;
50
+ /**
51
+ * Resolve thread session key for thread-capable groups.
52
+ *
53
+ * Returns a thread-scoped session key when ALL conditions are met:
54
+ * 1. `threadSession` config is enabled on the account
55
+ * 2. The group is a topic group (chat_mode=topic) or uses thread
56
+ * message mode (group_message_type=thread)
57
+ *
58
+ * The group info is fetched via `im.chat.get` with a 1-hour LRU cache
59
+ * to minimise OAPI calls.
60
+ */
61
+ export declare function resolveThreadSessionKey(params: {
62
+ accountScopedCfg: ClawdbotConfig;
63
+ account: LarkAccount;
64
+ chatId: string;
65
+ threadId: string;
66
+ baseSessionKey: string;
67
+ }): Promise<string | undefined>;
68
+ //# sourceMappingURL=dispatch-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-context.d.ts","sourceRoot":"","sources":["../../../../src/messaging/inbound/dispatch-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUpD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,cAAc,CAAC;IACpB,0EAA0E;IAC1E,gBAAgB,EAAE,cAAc,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,OAAO,UAAU,CAAC,OAAO,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClG,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAOzE;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,eAAe,CAkElB;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,gBAAgB,EAAE,cAAc,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuB9B"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ *
5
+ * Dispatch context construction for the inbound agent dispatch pipeline.
6
+ *
7
+ * Derives all shared values needed by downstream dispatch helpers:
8
+ * logging, addressing, route resolution, thread session, and system
9
+ * event emission.
10
+ */
11
+ import { resolveThreadSessionKeys } from 'openclaw/plugin-sdk';
12
+ import { LarkClient } from '../../core/lark-client';
13
+ import { larkLogger } from '../../core/lark-logger';
14
+ import { isThreadCapableGroup } from '../../core/chat-info-cache';
15
+ const log = larkLogger('inbound/dispatch-context');
16
+ // ---------------------------------------------------------------------------
17
+ // RuntimeEnv fallback
18
+ // ---------------------------------------------------------------------------
19
+ /**
20
+ * Provide a safe RuntimeEnv fallback when the caller did not supply one.
21
+ * Replaces the previous unsafe `runtime as RuntimeEnv` casts.
22
+ */
23
+ export function ensureRuntime(runtime) {
24
+ if (runtime)
25
+ return runtime;
26
+ return {
27
+ log: (...args) => log.info(args.map(String).join(' ')),
28
+ error: (...args) => log.error(args.map(String).join(' ')),
29
+ exit: (code) => process.exit(code),
30
+ };
31
+ }
32
+ // ---------------------------------------------------------------------------
33
+ // Context construction
34
+ // ---------------------------------------------------------------------------
35
+ /**
36
+ * Derive all shared values needed by downstream helpers:
37
+ * logging, addressing, route resolution, and system event emission.
38
+ */
39
+ export function buildDispatchContext(params) {
40
+ const { ctx, account, accountScopedCfg } = params;
41
+ const runtime = ensureRuntime(params.runtime);
42
+ const log = runtime.log;
43
+ const error = runtime.error;
44
+ const isGroup = ctx.chatType === 'group';
45
+ const isThread = isGroup && Boolean(ctx.threadId);
46
+ const core = LarkClient.runtime;
47
+ const feishuFrom = `feishu:${ctx.senderId}`;
48
+ const feishuTo = isGroup ? `chat:${ctx.chatId}` : `user:${ctx.senderId}`;
49
+ const envelopeFrom = isGroup ? `${ctx.chatId}:${ctx.senderId}` : ctx.senderId;
50
+ const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(accountScopedCfg);
51
+ // ---- Route resolution ----
52
+ const route = core.channel.routing.resolveAgentRoute({
53
+ cfg: accountScopedCfg,
54
+ channel: 'feishu',
55
+ accountId: account.accountId,
56
+ peer: {
57
+ kind: isGroup ? 'group' : 'direct',
58
+ id: isGroup ? ctx.chatId : ctx.senderId,
59
+ },
60
+ });
61
+ // ---- System event ----
62
+ const sender = ctx.senderName ? `${ctx.senderName} (${ctx.senderId})` : ctx.senderId;
63
+ const location = isGroup ? `group ${ctx.chatId}` : 'DM';
64
+ const tags = [];
65
+ tags.push(`msg:${ctx.messageId}`);
66
+ if (ctx.parentId)
67
+ tags.push(`reply_to:${ctx.parentId}`);
68
+ if (ctx.contentType !== 'text')
69
+ tags.push(ctx.contentType);
70
+ if (ctx.mentions.some((m) => m.isBot))
71
+ tags.push('@bot');
72
+ if (ctx.threadId)
73
+ tags.push(`thread:${ctx.threadId}`);
74
+ if (ctx.resources.length > 0) {
75
+ tags.push(`${ctx.resources.length} attachment(s)`);
76
+ }
77
+ const tagStr = tags.length > 0 ? ` [${tags.join(', ')}]` : '';
78
+ core.system.enqueueSystemEvent(`Feishu[${account.accountId}] ${location} | ${sender}${tagStr}`, {
79
+ sessionKey: route.sessionKey,
80
+ contextKey: `feishu:message:${ctx.chatId}:${ctx.messageId}`,
81
+ });
82
+ return {
83
+ ctx,
84
+ accountScopedCfg,
85
+ account,
86
+ runtime,
87
+ log,
88
+ error,
89
+ core,
90
+ isGroup,
91
+ isThread,
92
+ feishuFrom,
93
+ feishuTo,
94
+ envelopeFrom,
95
+ envelopeOptions,
96
+ route,
97
+ threadSessionKey: undefined,
98
+ commandAuthorized: params.commandAuthorized,
99
+ };
100
+ }
101
+ // ---------------------------------------------------------------------------
102
+ // Thread session resolution
103
+ // ---------------------------------------------------------------------------
104
+ /**
105
+ * Resolve thread session key for thread-capable groups.
106
+ *
107
+ * Returns a thread-scoped session key when ALL conditions are met:
108
+ * 1. `threadSession` config is enabled on the account
109
+ * 2. The group is a topic group (chat_mode=topic) or uses thread
110
+ * message mode (group_message_type=thread)
111
+ *
112
+ * The group info is fetched via `im.chat.get` with a 1-hour LRU cache
113
+ * to minimise OAPI calls.
114
+ */
115
+ export async function resolveThreadSessionKey(params) {
116
+ const { accountScopedCfg, account, chatId, threadId, baseSessionKey } = params;
117
+ if (account.config?.threadSession !== true)
118
+ return undefined;
119
+ const threadCapable = await isThreadCapableGroup({
120
+ cfg: accountScopedCfg,
121
+ chatId,
122
+ accountId: account.accountId,
123
+ });
124
+ if (!threadCapable) {
125
+ log.info(`thread session skipped: group ${chatId} is not topic/thread mode`);
126
+ return undefined;
127
+ }
128
+ // 使用 SDK 标准函数,保证分隔符格式与 resolveThreadParentSessionKey 兼容
129
+ const { sessionKey } = resolveThreadSessionKeys({
130
+ baseSessionKey,
131
+ threadId,
132
+ parentSessionKey: baseSessionKey,
133
+ normalizeThreadId: (id) => id, // 飞书 thread ID (omt_xxx) 区分大小写,不做 lowercase
134
+ });
135
+ return sessionKey;
136
+ }
137
+ //# sourceMappingURL=dispatch-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-context.js","sourceRoot":"","sources":["../../../../src/messaging/inbound/dispatch-context.ts"],"names":[],"mappings":"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"}