botmux 3.18.6 → 3.18.7

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 (239) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/riff-backend.d.ts +158 -0
  3. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/riff-backend.js +330 -7
  5. package/dist/adapters/backend/riff-backend.js.map +1 -1
  6. package/dist/adapters/backend/sandbox.d.ts +42 -0
  7. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  8. package/dist/adapters/backend/sandbox.js +95 -5
  9. package/dist/adapters/backend/sandbox.js.map +1 -1
  10. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  11. package/dist/adapters/cli/codex-app.js +2 -1
  12. package/dist/adapters/cli/codex-app.js.map +1 -1
  13. package/dist/adapters/cli/dsh.d.ts.map +1 -1
  14. package/dist/adapters/cli/dsh.js +2 -1
  15. package/dist/adapters/cli/dsh.js.map +1 -1
  16. package/dist/adapters/cli/mir.d.ts.map +1 -1
  17. package/dist/adapters/cli/mir.js +2 -1
  18. package/dist/adapters/cli/mir.js.map +1 -1
  19. package/dist/adapters/cli/mira.d.ts.map +1 -1
  20. package/dist/adapters/cli/mira.js +2 -1
  21. package/dist/adapters/cli/mira.js.map +1 -1
  22. package/dist/adapters/hook-command.d.ts +3 -5
  23. package/dist/adapters/hook-command.d.ts.map +1 -1
  24. package/dist/adapters/hook-command.js +59 -13
  25. package/dist/adapters/hook-command.js.map +1 -1
  26. package/dist/autostart.d.ts +76 -0
  27. package/dist/autostart.d.ts.map +1 -1
  28. package/dist/autostart.js +105 -28
  29. package/dist/autostart.js.map +1 -1
  30. package/dist/bot-registry.d.ts +12 -0
  31. package/dist/bot-registry.d.ts.map +1 -1
  32. package/dist/bot-registry.js +43 -3
  33. package/dist/bot-registry.js.map +1 -1
  34. package/dist/cli/dashboard-command.d.ts +142 -0
  35. package/dist/cli/dashboard-command.d.ts.map +1 -1
  36. package/dist/cli/dashboard-command.js +160 -0
  37. package/dist/cli/dashboard-command.js.map +1 -1
  38. package/dist/cli/dashboard-endpoint.d.ts +66 -0
  39. package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
  40. package/dist/cli/dashboard-endpoint.js +144 -30
  41. package/dist/cli/dashboard-endpoint.js.map +1 -1
  42. package/dist/cli/send-dispatch.d.ts +2 -0
  43. package/dist/cli/send-dispatch.d.ts.map +1 -1
  44. package/dist/cli/send-dispatch.js +8 -2
  45. package/dist/cli/send-dispatch.js.map +1 -1
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +270 -38
  48. package/dist/cli.js.map +1 -1
  49. package/dist/core/binary-self-update.d.ts +7 -0
  50. package/dist/core/binary-self-update.d.ts.map +1 -1
  51. package/dist/core/binary-self-update.js +17 -0
  52. package/dist/core/binary-self-update.js.map +1 -1
  53. package/dist/core/command-handler.d.ts.map +1 -1
  54. package/dist/core/command-handler.js +52 -1
  55. package/dist/core/command-handler.js.map +1 -1
  56. package/dist/core/cost-calculator.d.ts +9 -1
  57. package/dist/core/cost-calculator.d.ts.map +1 -1
  58. package/dist/core/cost-calculator.js +5 -0
  59. package/dist/core/cost-calculator.js.map +1 -1
  60. package/dist/core/passthrough-commands.d.ts.map +1 -1
  61. package/dist/core/passthrough-commands.js +1 -1
  62. package/dist/core/passthrough-commands.js.map +1 -1
  63. package/dist/core/self-spawn.d.ts +46 -1
  64. package/dist/core/self-spawn.d.ts.map +1 -1
  65. package/dist/core/self-spawn.js +57 -0
  66. package/dist/core/self-spawn.js.map +1 -1
  67. package/dist/core/worker-pool.d.ts.map +1 -1
  68. package/dist/core/worker-pool.js +81 -5
  69. package/dist/core/worker-pool.js.map +1 -1
  70. package/dist/daemon.d.ts.map +1 -1
  71. package/dist/daemon.js +93 -0
  72. package/dist/daemon.js.map +1 -1
  73. package/dist/dashboard/autostart-api.d.ts.map +1 -1
  74. package/dist/dashboard/autostart-api.js +16 -3
  75. package/dist/dashboard/autostart-api.js.map +1 -1
  76. package/dist/dashboard/bot-onboarding.d.ts +2 -1
  77. package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
  78. package/dist/dashboard/bot-onboarding.js +22 -6
  79. package/dist/dashboard/bot-onboarding.js.map +1 -1
  80. package/dist/dashboard/bot-payload.d.ts +1 -0
  81. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  82. package/dist/dashboard/bot-payload.js +3 -0
  83. package/dist/dashboard/bot-payload.js.map +1 -1
  84. package/dist/dashboard/connector-api.d.ts.map +1 -1
  85. package/dist/dashboard/connector-api.js +28 -0
  86. package/dist/dashboard/connector-api.js.map +1 -1
  87. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  88. package/dist/dashboard/trigger-api.js +33 -21
  89. package/dist/dashboard/trigger-api.js.map +1 -1
  90. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  91. package/dist/dashboard/web/bot-defaults-page.js +12 -2
  92. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  93. package/dist/dashboard/web/bot-defaults.d.ts +2 -0
  94. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  95. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  96. package/dist/dashboard/web/bot-onboarding.d.ts +40 -1
  97. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  98. package/dist/dashboard/web/bot-onboarding.js +52 -2
  99. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  100. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  101. package/dist/dashboard/web/i18n.js +2 -0
  102. package/dist/dashboard/web/i18n.js.map +1 -1
  103. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  104. package/dist/dashboard/webhook-routes.js +272 -30
  105. package/dist/dashboard/webhook-routes.js.map +1 -1
  106. package/dist/dashboard-web/app.js +1 -1
  107. package/dist/dashboard-web/chunks/{agent-workbench-dock-page-XHJUYFGN.js → agent-workbench-dock-page-6LC422N6.js} +1 -1
  108. package/dist/dashboard-web/chunks/{agent-workbench-page-FLKTLIRM.js → agent-workbench-page-RSAWY7O2.js} +1 -1
  109. package/dist/dashboard-web/chunks/{bot-defaults-page-XMGLZZ2E.js → bot-defaults-page-67RAWCSQ.js} +1 -1
  110. package/dist/dashboard-web/chunks/{chunk-TLG45URB.js → chunk-IA5KMD5O.js} +1 -1
  111. package/dist/dashboard-web/chunks/{chunk-BU3Q6XC6.js → chunk-K232GT3M.js} +2 -2
  112. package/dist/dashboard-web/chunks/chunk-MMLTCXHP.js +10 -0
  113. package/dist/dashboard-web/chunks/{chunk-ECFC7UG2.js → chunk-R3LJUCEO.js} +1 -1
  114. package/dist/dashboard-web/chunks/{chunk-Z67OSM5P.js → chunk-YJA3KY3J.js} +1 -1
  115. package/dist/dashboard-web/chunks/{connectors-page-WDM4CEAU.js → connectors-page-DJCTHSFB.js} +1 -1
  116. package/dist/dashboard-web/chunks/{feedback-page-GMJ4FLJ4.js → feedback-page-O7SZRKNM.js} +1 -1
  117. package/dist/dashboard-web/chunks/{groups-page-L4ZJNWVR.js → groups-page-7PONUYHE.js} +1 -1
  118. package/dist/dashboard-web/chunks/{insights-page-7LUJU2CX.js → insights-page-J6DAAJ6D.js} +1 -1
  119. package/dist/dashboard-web/chunks/{monitor-room-7LZUJQPF.js → monitor-room-F3QNEW7N.js} +1 -1
  120. package/dist/dashboard-web/chunks/{monitoring-page-AUSXMPYO.js → monitoring-page-JHDD2VS2.js} +1 -1
  121. package/dist/dashboard-web/chunks/{office-page-6ZU6MAZN.js → office-page-MMTN4IKD.js} +1 -1
  122. package/dist/dashboard-web/chunks/{overview-page-QBC5CIYH.js → overview-page-IQ2UJAJP.js} +1 -1
  123. package/dist/dashboard-web/chunks/{roles-page-QO3YCA7D.js → roles-page-FNI4MGX6.js} +1 -1
  124. package/dist/dashboard-web/chunks/{schedules-page-YNGSKDQW.js → schedules-page-6PUU63KS.js} +1 -1
  125. package/dist/dashboard-web/chunks/{sessions-page-BWR4UB6X.js → sessions-page-O4N72EXT.js} +4 -4
  126. package/dist/dashboard-web/chunks/{settings-page-2IRIS3FP.js → settings-page-G7B3STUF.js} +1 -1
  127. package/dist/dashboard-web/chunks/{skills-page-5RZPM6HJ.js → skills-page-CEWKQOIG.js} +1 -1
  128. package/dist/dashboard-web/chunks/{team-federation-page-KERG6LKC.js → team-federation-page-NUP4VK4H.js} +1 -1
  129. package/dist/dashboard-web/chunks/{v3-page-766CBD7H.js → v3-page-M4XF6D5Z.js} +1 -1
  130. package/dist/dashboard-web/chunks/{whiteboards-page-2M6XZD5C.js → whiteboards-page-L755NZX6.js} +1 -1
  131. package/dist/dashboard-web/style.css +13 -0
  132. package/dist/dashboard.js +3 -0
  133. package/dist/dashboard.js.map +1 -1
  134. package/dist/global-config.d.ts +3 -0
  135. package/dist/global-config.d.ts.map +1 -1
  136. package/dist/global-config.js +10 -3
  137. package/dist/global-config.js.map +1 -1
  138. package/dist/i18n/en.d.ts.map +1 -1
  139. package/dist/i18n/en.js +19 -1
  140. package/dist/i18n/en.js.map +1 -1
  141. package/dist/i18n/zh.d.ts.map +1 -1
  142. package/dist/i18n/zh.js +19 -1
  143. package/dist/i18n/zh.js.map +1 -1
  144. package/dist/im/lark/api-gate.d.ts +53 -0
  145. package/dist/im/lark/api-gate.d.ts.map +1 -0
  146. package/dist/im/lark/api-gate.js +322 -0
  147. package/dist/im/lark/api-gate.js.map +1 -0
  148. package/dist/im/lark/audio-transcribe.d.ts +23 -0
  149. package/dist/im/lark/audio-transcribe.d.ts.map +1 -0
  150. package/dist/im/lark/audio-transcribe.js +126 -0
  151. package/dist/im/lark/audio-transcribe.js.map +1 -0
  152. package/dist/im/lark/card-builder.d.ts +6 -0
  153. package/dist/im/lark/card-builder.d.ts.map +1 -1
  154. package/dist/im/lark/card-builder.js +53 -1
  155. package/dist/im/lark/card-builder.js.map +1 -1
  156. package/dist/im/lark/card-handler.d.ts +10 -0
  157. package/dist/im/lark/card-handler.d.ts.map +1 -1
  158. package/dist/im/lark/card-handler.js +68 -1
  159. package/dist/im/lark/card-handler.js.map +1 -1
  160. package/dist/im/lark/client.d.ts.map +1 -1
  161. package/dist/im/lark/client.js +247 -224
  162. package/dist/im/lark/client.js.map +1 -1
  163. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  164. package/dist/im/lark/event-dispatcher.js +34 -3
  165. package/dist/im/lark/event-dispatcher.js.map +1 -1
  166. package/dist/im/lark/message-parser.d.ts +16 -0
  167. package/dist/im/lark/message-parser.d.ts.map +1 -1
  168. package/dist/im/lark/message-parser.js +31 -0
  169. package/dist/im/lark/message-parser.js.map +1 -1
  170. package/dist/services/budget-tracker.d.ts +61 -0
  171. package/dist/services/budget-tracker.d.ts.map +1 -0
  172. package/dist/services/budget-tracker.js +306 -0
  173. package/dist/services/budget-tracker.js.map +1 -0
  174. package/dist/services/connector-store.d.ts +16 -0
  175. package/dist/services/connector-store.d.ts.map +1 -1
  176. package/dist/services/connector-store.js.map +1 -1
  177. package/dist/services/failed-turn-retry.d.ts +43 -0
  178. package/dist/services/failed-turn-retry.d.ts.map +1 -0
  179. package/dist/services/failed-turn-retry.js +50 -0
  180. package/dist/services/failed-turn-retry.js.map +1 -0
  181. package/dist/services/model-pricing.d.ts +80 -0
  182. package/dist/services/model-pricing.d.ts.map +1 -0
  183. package/dist/services/model-pricing.js +182 -0
  184. package/dist/services/model-pricing.js.map +1 -0
  185. package/dist/services/session-store.d.ts.map +1 -1
  186. package/dist/services/session-store.js +13 -3
  187. package/dist/services/session-store.js.map +1 -1
  188. package/dist/services/trigger-types.d.ts +10 -0
  189. package/dist/services/trigger-types.d.ts.map +1 -1
  190. package/dist/services/trigger-types.js.map +1 -1
  191. package/dist/services/usage-ledger.d.ts +10 -0
  192. package/dist/services/usage-ledger.d.ts.map +1 -1
  193. package/dist/services/usage-ledger.js +36 -0
  194. package/dist/services/usage-ledger.js.map +1 -1
  195. package/dist/services/voice/asr.d.ts +17 -0
  196. package/dist/services/voice/asr.d.ts.map +1 -0
  197. package/dist/services/voice/asr.js +64 -0
  198. package/dist/services/voice/asr.js.map +1 -0
  199. package/dist/services/voice/index.d.ts +17 -2
  200. package/dist/services/voice/index.d.ts.map +1 -1
  201. package/dist/services/voice/index.js +43 -0
  202. package/dist/services/voice/index.js.map +1 -1
  203. package/dist/services/voice/types.d.ts +15 -0
  204. package/dist/services/voice/types.d.ts.map +1 -1
  205. package/dist/services/webhook-idempotency.d.ts +134 -0
  206. package/dist/services/webhook-idempotency.d.ts.map +1 -0
  207. package/dist/services/webhook-idempotency.js +265 -0
  208. package/dist/services/webhook-idempotency.js.map +1 -0
  209. package/dist/setup/app-name.d.ts +1 -0
  210. package/dist/setup/app-name.d.ts.map +1 -1
  211. package/dist/setup/app-name.js +7 -0
  212. package/dist/setup/app-name.js.map +1 -1
  213. package/dist/setup/bot-config-editor.d.ts +28 -0
  214. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  215. package/dist/setup/bot-config-editor.js +73 -0
  216. package/dist/setup/bot-config-editor.js.map +1 -1
  217. package/dist/setup/open-platform-automation.d.ts +26 -0
  218. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  219. package/dist/setup/open-platform-automation.js +90 -1
  220. package/dist/setup/open-platform-automation.js.map +1 -1
  221. package/dist/setup/open-platform-outcome.d.ts.map +1 -1
  222. package/dist/setup/open-platform-outcome.js +8 -2
  223. package/dist/setup/open-platform-outcome.js.map +1 -1
  224. package/dist/types.d.ts +20 -1
  225. package/dist/types.d.ts.map +1 -1
  226. package/dist/utils/usage-limit-tracker.d.ts +29 -9
  227. package/dist/utils/usage-limit-tracker.d.ts.map +1 -1
  228. package/dist/utils/usage-limit-tracker.js +122 -14
  229. package/dist/utils/usage-limit-tracker.js.map +1 -1
  230. package/dist/worker.js +27 -6
  231. package/dist/worker.js.map +1 -1
  232. package/dist/workflows/definition.d.ts +56 -56
  233. package/dist/workflows/events/payloads.d.ts +2 -2
  234. package/dist/workflows/events/schema.d.ts +430 -430
  235. package/dist/workflows/migration/v2-run-archive-schema.d.ts +2 -2
  236. package/dist/workflows/v3/run-envelope.d.ts +56 -56
  237. package/package.json +9 -8
  238. package/scripts/postinstall-bin.mjs +25 -0
  239. package/dist/dashboard-web/chunks/chunk-NJCJR3U2.js +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/im/lark/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/im/lark/client.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { resolveTeamRoleFile } from '../../core/role-resolver.js';
15
15
  import { larkHosts, normalizeBrand, sdkDomain } from './lark-hosts.js';
16
16
  import { canonicalMobileKey, isMobileEntry, normalizeMobileEntry } from '../../setup/bot-config-editor.js';
17
17
  import { stampBotmuxCallbackMarkers } from './callback-button-marker.js';
18
+ import { executeWithLarkGate } from './api-gate.js';
18
19
  function larkRequestDeadline(options) {
19
20
  const timeout = options?.timeoutMs;
20
21
  return {
@@ -224,47 +225,49 @@ async function emitOutboundHookIfAllowed(options, event, payload) {
224
225
  }
225
226
  export async function sendMessage(larkAppId, chatId, content, msgType = 'text', uuid, hookContext, options) {
226
227
  assertLarkTransport(larkAppId, 'sendMessage');
227
- const c = getBotClient(larkAppId);
228
- const body = msgType === 'text'
229
- ? JSON.stringify({ text: content })
230
- : msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
231
- let res;
232
- try {
233
- res = await c.im.v1.message.create({
234
- params: { receive_id_type: 'chat_id' },
235
- data: {
236
- receive_id: chatId,
237
- msg_type: msgType,
238
- content: body,
239
- ...(uuid ? { uuid } : {}),
240
- },
241
- });
242
- }
243
- catch (err) {
244
- if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
245
- throw new MessageWithdrawnError(chatId);
228
+ return executeWithLarkGate(larkAppId, 'sendMessage', async () => {
229
+ const c = getBotClient(larkAppId);
230
+ const body = msgType === 'text'
231
+ ? JSON.stringify({ text: content })
232
+ : msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
233
+ let res;
234
+ try {
235
+ res = await c.im.v1.message.create({
236
+ params: { receive_id_type: 'chat_id' },
237
+ data: {
238
+ receive_id: chatId,
239
+ msg_type: msgType,
240
+ content: body,
241
+ ...(uuid ? { uuid } : {}),
242
+ },
243
+ });
246
244
  }
247
- throw err;
248
- }
249
- if (res.code !== 0) {
250
- if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
251
- throw new MessageWithdrawnError(chatId);
252
- throw new Error(`Failed to send message: ${res.msg} (code: ${res.code})`);
253
- }
254
- const messageId = res.data?.message_id;
255
- if (!messageId)
256
- throw new Error('No message_id in response');
257
- logger.info(`Sent message ${messageId} to chat ${chatId}`);
258
- await emitOutboundHookIfAllowed(options, 'outbound.send', {
259
- ...hookContext,
260
- larkAppId,
261
- chatId,
262
- messageId,
263
- msgType,
264
- uuid,
265
- content,
245
+ catch (err) {
246
+ if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
247
+ throw new MessageWithdrawnError(chatId);
248
+ }
249
+ throw err;
250
+ }
251
+ if (res.code !== 0) {
252
+ if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
253
+ throw new MessageWithdrawnError(chatId);
254
+ throw new Error(`Failed to send message: ${res.msg} (code: ${res.code})`);
255
+ }
256
+ const messageId = res.data?.message_id;
257
+ if (!messageId)
258
+ throw new Error('No message_id in response');
259
+ logger.info(`Sent message ${messageId} to chat ${chatId}`);
260
+ await emitOutboundHookIfAllowed(options, 'outbound.send', {
261
+ ...hookContext,
262
+ larkAppId,
263
+ chatId,
264
+ messageId,
265
+ msgType,
266
+ uuid,
267
+ content,
268
+ });
269
+ return messageId;
266
270
  });
267
- return messageId;
268
271
  }
269
272
  /**
270
273
  * Reply to an existing message. See {@link sendMessage} for the `uuid`
@@ -275,73 +278,79 @@ export async function sendMessage(larkAppId, chatId, content, msgType = 'text',
275
278
  */
276
279
  export async function replyMessage(larkAppId, messageId, content, msgType = 'text', replyInThread = false, uuid, hookContext, options) {
277
280
  assertLarkTransport(larkAppId, 'replyMessage');
278
- const c = getBotClient(larkAppId);
279
- const body = msgType === 'text'
280
- ? JSON.stringify({ text: content })
281
- : msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
282
- let res;
283
- try {
284
- res = await c.im.v1.message.reply({
285
- path: { message_id: messageId },
286
- data: {
287
- msg_type: msgType,
288
- content: body,
289
- ...(replyInThread ? { reply_in_thread: true } : {}),
290
- ...(uuid ? { uuid } : {}),
291
- },
292
- });
293
- }
294
- catch (err) {
295
- if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
296
- throw new MessageWithdrawnError(messageId);
281
+ return executeWithLarkGate(larkAppId, 'replyMessage', async () => {
282
+ const c = getBotClient(larkAppId);
283
+ const body = msgType === 'text'
284
+ ? JSON.stringify({ text: content })
285
+ : msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
286
+ let res;
287
+ try {
288
+ res = await c.im.v1.message.reply({
289
+ path: { message_id: messageId },
290
+ data: {
291
+ msg_type: msgType,
292
+ content: body,
293
+ ...(replyInThread ? { reply_in_thread: true } : {}),
294
+ ...(uuid ? { uuid } : {}),
295
+ },
296
+ });
297
297
  }
298
- throw err;
299
- }
300
- if (res.code !== 0) {
301
- if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
302
- throw new MessageWithdrawnError(messageId);
303
- throw new Error(`Failed to reply message: ${res.msg} (code: ${res.code})`);
304
- }
305
- const replyId = res.data?.message_id;
306
- if (!replyId)
307
- throw new Error('No message_id in reply response');
308
- logger.info(`Replied ${replyId} to message ${messageId} [msgType=${msgType}, replyInThread=${replyInThread}]`);
309
- await emitOutboundHookIfAllowed(options, 'outbound.reply', {
310
- ...hookContext,
311
- larkAppId,
312
- messageId,
313
- replyId,
314
- msgType,
315
- replyInThread,
316
- uuid,
317
- content,
298
+ catch (err) {
299
+ if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
300
+ throw new MessageWithdrawnError(messageId);
301
+ }
302
+ throw err;
303
+ }
304
+ if (res.code !== 0) {
305
+ if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
306
+ throw new MessageWithdrawnError(messageId);
307
+ throw new Error(`Failed to reply message: ${res.msg} (code: ${res.code})`);
308
+ }
309
+ const replyId = res.data?.message_id;
310
+ if (!replyId)
311
+ throw new Error('No message_id in reply response');
312
+ logger.info(`Replied ${replyId} to message ${messageId} [msgType=${msgType}, replyInThread=${replyInThread}]`);
313
+ await emitOutboundHookIfAllowed(options, 'outbound.reply', {
314
+ ...hookContext,
315
+ larkAppId,
316
+ messageId,
317
+ replyId,
318
+ msgType,
319
+ replyInThread,
320
+ uuid,
321
+ content,
322
+ });
323
+ return replyId;
318
324
  });
319
- return replyId;
320
325
  }
321
326
  export async function addReaction(larkAppId, messageId, emojiType) {
322
327
  assertLarkTransport(larkAppId, 'addReaction');
323
- const c = getBotClient(larkAppId);
324
- const res = await c.im.v1.messageReaction.create({
325
- path: { message_id: messageId },
326
- data: { reaction_type: { emoji_type: emojiType } },
328
+ return executeWithLarkGate(larkAppId, 'addReaction', async () => {
329
+ const c = getBotClient(larkAppId);
330
+ const res = await c.im.v1.messageReaction.create({
331
+ path: { message_id: messageId },
332
+ data: { reaction_type: { emoji_type: emojiType } },
333
+ });
334
+ if (res.code !== 0) {
335
+ throw new Error(`Failed to add reaction: ${res.msg} (code: ${res.code})`);
336
+ }
337
+ const reactionId = res.data?.reaction_id;
338
+ logger.info(`Added reaction ${emojiType} (${reactionId}) to message ${messageId}`);
339
+ return reactionId ?? '';
327
340
  });
328
- if (res.code !== 0) {
329
- throw new Error(`Failed to add reaction: ${res.msg} (code: ${res.code})`);
330
- }
331
- const reactionId = res.data?.reaction_id;
332
- logger.info(`Added reaction ${emojiType} (${reactionId}) to message ${messageId}`);
333
- return reactionId ?? '';
334
341
  }
335
342
  export async function removeReaction(larkAppId, messageId, reactionId) {
336
343
  assertLarkTransport(larkAppId, 'removeReaction');
337
- const c = getBotClient(larkAppId);
338
- const res = await c.im.v1.messageReaction.delete({
339
- path: { message_id: messageId, reaction_id: reactionId },
344
+ return executeWithLarkGate(larkAppId, 'removeReaction', async () => {
345
+ const c = getBotClient(larkAppId);
346
+ const res = await c.im.v1.messageReaction.delete({
347
+ path: { message_id: messageId, reaction_id: reactionId },
348
+ });
349
+ if (res.code !== 0) {
350
+ throw new Error(`Failed to remove reaction: ${res.msg} (code: ${res.code})`);
351
+ }
352
+ logger.info(`Removed reaction ${reactionId} from message ${messageId}`);
340
353
  });
341
- if (res.code !== 0) {
342
- throw new Error(`Failed to remove reaction: ${res.msg} (code: ${res.code})`);
343
- }
344
- logger.info(`Removed reaction ${reactionId} from message ${messageId}`);
345
354
  }
346
355
  /**
347
356
  * Resolve a user's tenant-stable `union_id` from their app-scoped `open_id`.
@@ -474,44 +483,46 @@ export async function isHumanOpenId(larkAppId, openId) {
474
483
  }
475
484
  export async function sendUserMessage(larkAppId, openId, content, msgType = 'text', uuid, requestOptions) {
476
485
  assertLarkTransport(larkAppId, 'sendUserMessage');
477
- const c = getBotClient(larkAppId);
478
- // Stamp callback-button ownership markers on interactive DMs too: this is the
479
- // FIFTH card egress surface (config / write-link / substitute / overload / …
480
- // cards all DM their callback buttons through here). Without it a peer bot
481
- // reading such a DM via history flattens the buttons into its prompt, and
482
- // worse a future botmux DM button with a new action would leak past the
483
- // parser's legacy wordlist. Shared `body` feeds BOTH branches below (plain
484
- // create + deadline request), so one stamp covers both. Same total-function
485
- // contract as send/reply/ephemeral/update: any JSON anomaly returns unchanged.
486
- const body = msgType === 'text'
487
- ? JSON.stringify({ text: content })
488
- : msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
489
- const data = {
490
- receive_id: openId,
491
- msg_type: msgType,
492
- content: body,
493
- ...(uuid ? { uuid } : {}),
494
- };
495
- const res = requestOptions
496
- ? await c.request({
497
- method: 'POST',
498
- url: '/open-apis/im/v1/messages',
499
- params: { receive_id_type: 'open_id' },
500
- data,
501
- ...larkRequestDeadline(requestOptions),
502
- })
503
- : await c.im.v1.message.create({
504
- params: { receive_id_type: 'open_id' },
505
- data,
506
- });
507
- if (res.code !== 0) {
508
- throw new Error(`Failed to send user message: ${res.msg} (code: ${res.code})`);
509
- }
510
- const messageId = res.data?.message_id;
511
- if (!messageId)
512
- throw new Error('No message_id in response');
513
- logger.info(`Sent DM ${messageId} to user ${openId}`);
514
- return messageId;
486
+ return executeWithLarkGate(larkAppId, 'sendUserMessage', async () => {
487
+ const c = getBotClient(larkAppId);
488
+ // Stamp callback-button ownership markers on interactive DMs too: this is the
489
+ // FIFTH card egress surface (config / write-link / substitute / overload /
490
+ // cards all DM their callback buttons through here). Without it a peer bot
491
+ // reading such a DM via history flattens the buttons into its prompt, and
492
+ // worse a future botmux DM button with a new action would leak past the
493
+ // parser's legacy wordlist. Shared `body` feeds BOTH branches below (plain
494
+ // create + deadline request), so one stamp covers both. Same total-function
495
+ // contract as send/reply/ephemeral/update: any JSON anomaly returns unchanged.
496
+ const body = msgType === 'text'
497
+ ? JSON.stringify({ text: content })
498
+ : msgType === 'interactive' ? stampBotmuxCallbackMarkers(content) : content;
499
+ const data = {
500
+ receive_id: openId,
501
+ msg_type: msgType,
502
+ content: body,
503
+ ...(uuid ? { uuid } : {}),
504
+ };
505
+ const res = requestOptions
506
+ ? await c.request({
507
+ method: 'POST',
508
+ url: '/open-apis/im/v1/messages',
509
+ params: { receive_id_type: 'open_id' },
510
+ data,
511
+ ...larkRequestDeadline(requestOptions),
512
+ })
513
+ : await c.im.v1.message.create({
514
+ params: { receive_id_type: 'open_id' },
515
+ data,
516
+ });
517
+ if (res.code !== 0) {
518
+ throw new Error(`Failed to send user message: ${res.msg} (code: ${res.code})`);
519
+ }
520
+ const messageId = res.data?.message_id;
521
+ if (!messageId)
522
+ throw new Error('No message_id in response');
523
+ logger.info(`Sent DM ${messageId} to user ${openId}`);
524
+ return messageId;
525
+ }, requestOptions?.signal ? { signal: requestOptions.signal } : undefined);
515
526
  }
516
527
  export async function getChatInfo(larkAppId, chatId) {
517
528
  const c = getBotClient(larkAppId);
@@ -761,19 +772,21 @@ export async function getChatMode(larkAppId, chatId, options = {}) {
761
772
  */
762
773
  export async function deleteMessage(larkAppId, messageId) {
763
774
  assertLarkTransport(larkAppId, 'deleteMessage');
764
- const c = getBotClient(larkAppId);
765
- try {
766
- const res = await c.im.v1.message.delete({ path: { message_id: messageId } });
767
- if (res && typeof res.code === 'number' && res.code !== 0) {
768
- logger.debug(`Delete message ${messageId} returned non-zero code: ${res.code} ${res.msg ?? ''}`);
775
+ return executeWithLarkGate(larkAppId, 'deleteMessage', async () => {
776
+ const c = getBotClient(larkAppId);
777
+ try {
778
+ const res = await c.im.v1.message.delete({ path: { message_id: messageId } });
779
+ if (res && typeof res.code === 'number' && res.code !== 0) {
780
+ logger.debug(`Delete message ${messageId} returned non-zero code: ${res.code} ${res.msg ?? ''}`);
781
+ return false;
782
+ }
783
+ return true;
784
+ }
785
+ catch (err) {
786
+ logger.debug(`Failed to delete message ${messageId}: ${err}`);
769
787
  return false;
770
788
  }
771
- return true;
772
- }
773
- catch (err) {
774
- logger.debug(`Failed to delete message ${messageId}: ${err}`);
775
- return false;
776
- }
789
+ });
777
790
  }
778
791
  /** Error code Feishu returns from `ephemeral/v1/send` when the target chat is a
779
792
  * topic / thread chat. Ephemeral cards only work in plain `group` chats (see
@@ -788,25 +801,27 @@ export const LARK_CODE_EPHEMERAL_NOT_GROUP = 18053;
788
801
  */
789
802
  export async function sendEphemeralCard(larkAppId, chatId, openId, cardJson) {
790
803
  assertLarkTransport(larkAppId, 'sendEphemeralCard');
791
- const c = getBotClient(larkAppId);
792
- let card;
793
- try {
794
- card = JSON.parse(stampBotmuxCallbackMarkers(cardJson));
795
- }
796
- catch (err) {
797
- throw new Error(`Invalid ephemeral card JSON: ${err}`);
798
- }
799
- const res = await c.request({
800
- method: 'POST',
801
- url: '/open-apis/ephemeral/v1/send',
802
- data: { chat_id: chatId, open_id: openId, msg_type: 'interactive', card },
804
+ return executeWithLarkGate(larkAppId, 'sendEphemeralCard', async () => {
805
+ const c = getBotClient(larkAppId);
806
+ let card;
807
+ try {
808
+ card = JSON.parse(stampBotmuxCallbackMarkers(cardJson));
809
+ }
810
+ catch (err) {
811
+ throw new Error(`Invalid ephemeral card JSON: ${err}`);
812
+ }
813
+ const res = await c.request({
814
+ method: 'POST',
815
+ url: '/open-apis/ephemeral/v1/send',
816
+ data: { chat_id: chatId, open_id: openId, msg_type: 'interactive', card },
817
+ });
818
+ if (res.code !== 0) {
819
+ throw new Error(`Failed to send ephemeral card: ${res.msg} (code: ${res.code})`);
820
+ }
821
+ const messageId = res.data?.message_id;
822
+ logger.info(`Sent ephemeral card ${messageId ?? '(no id)'} to ${openId} in chat ${chatId}`);
823
+ return messageId ?? '';
803
824
  });
804
- if (res.code !== 0) {
805
- throw new Error(`Failed to send ephemeral card: ${res.msg} (code: ${res.code})`);
806
- }
807
- const messageId = res.data?.message_id;
808
- logger.info(`Sent ephemeral card ${messageId ?? '(no id)'} to ${openId} in chat ${chatId}`);
809
- return messageId ?? '';
810
825
  }
811
826
  /**
812
827
  * Delete a previously-sent ephemeral card (`ephemeral/v1/delete`). Ephemeral
@@ -819,45 +834,49 @@ export async function sendEphemeralCard(larkAppId, chatId, openId, cardJson) {
819
834
  */
820
835
  export async function deleteEphemeralCard(larkAppId, messageId) {
821
836
  assertLarkTransport(larkAppId, 'deleteEphemeralCard');
822
- const c = getBotClient(larkAppId);
823
- try {
824
- const res = await c.request({
825
- method: 'POST',
826
- url: '/open-apis/ephemeral/v1/delete',
827
- data: { message_id: messageId },
828
- });
829
- if (res && typeof res.code === 'number' && res.code !== 0) {
830
- logger.debug(`Delete ephemeral card ${messageId} returned non-zero code: ${res.code} ${res.msg ?? ''}`);
837
+ return executeWithLarkGate(larkAppId, 'deleteEphemeralCard', async () => {
838
+ const c = getBotClient(larkAppId);
839
+ try {
840
+ const res = await c.request({
841
+ method: 'POST',
842
+ url: '/open-apis/ephemeral/v1/delete',
843
+ data: { message_id: messageId },
844
+ });
845
+ if (res && typeof res.code === 'number' && res.code !== 0) {
846
+ logger.debug(`Delete ephemeral card ${messageId} returned non-zero code: ${res.code} ${res.msg ?? ''}`);
847
+ return false;
848
+ }
849
+ return true;
850
+ }
851
+ catch (err) {
852
+ logger.debug(`Failed to delete ephemeral card ${messageId}: ${err}`);
831
853
  return false;
832
854
  }
833
- return true;
834
- }
835
- catch (err) {
836
- logger.debug(`Failed to delete ephemeral card ${messageId}: ${err}`);
837
- return false;
838
- }
855
+ });
839
856
  }
840
857
  export async function updateMessage(larkAppId, messageId, cardJson) {
841
858
  assertLarkTransport(larkAppId, 'updateMessage');
842
- const c = getBotClient(larkAppId);
843
- let res;
844
- try {
845
- res = await c.im.v1.message.patch({
846
- path: { message_id: messageId },
847
- data: { content: stampBotmuxCallbackMarkers(cardJson) },
848
- });
849
- }
850
- catch (err) {
851
- if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
852
- throw new MessageWithdrawnError(messageId);
859
+ return executeWithLarkGate(larkAppId, 'updateMessage', async () => {
860
+ const c = getBotClient(larkAppId);
861
+ let res;
862
+ try {
863
+ res = await c.im.v1.message.patch({
864
+ path: { message_id: messageId },
865
+ data: { content: stampBotmuxCallbackMarkers(cardJson) },
866
+ });
853
867
  }
854
- throw err;
855
- }
856
- if (res.code !== 0) {
857
- if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
858
- throw new MessageWithdrawnError(messageId);
859
- throw new Error(`Failed to update message: ${res.msg} (code: ${res.code})`);
860
- }
868
+ catch (err) {
869
+ if (getLarkErrorCode(err) === LARK_CODE_MESSAGE_WITHDRAWN) {
870
+ throw new MessageWithdrawnError(messageId);
871
+ }
872
+ throw err;
873
+ }
874
+ if (res.code !== 0) {
875
+ if (res.code === LARK_CODE_MESSAGE_WITHDRAWN)
876
+ throw new MessageWithdrawnError(messageId);
877
+ throw new Error(`Failed to update message: ${res.msg} (code: ${res.code})`);
878
+ }
879
+ });
861
880
  }
862
881
  export async function getMessageDetail(larkAppId, messageId, options = {}) {
863
882
  const c = getBotClient(larkAppId);
@@ -1027,39 +1046,43 @@ const EXT_TO_FILE_TYPE = {
1027
1046
  };
1028
1047
  export async function uploadImage(larkAppId, imagePath) {
1029
1048
  assertLarkTransport(larkAppId, 'uploadImage');
1030
- const c = getBotUploadClient(larkAppId);
1031
- const buf = readFileSync(imagePath);
1032
- // SDK returns { image_key } directly (not wrapped in { code, data })
1033
- const res = await c.im.v1.image.create({
1034
- data: { image_type: 'message', image: buf },
1049
+ return executeWithLarkGate(larkAppId, 'uploadImage', async () => {
1050
+ const c = getBotUploadClient(larkAppId);
1051
+ const buf = readFileSync(imagePath);
1052
+ // SDK returns { image_key } directly (not wrapped in { code, data })
1053
+ const res = await c.im.v1.image.create({
1054
+ data: { image_type: 'message', image: buf },
1055
+ });
1056
+ const imageKey = res?.image_key;
1057
+ if (!imageKey)
1058
+ throw new Error(`Failed to upload image: no image_key in response (${JSON.stringify(res)})`);
1059
+ logger.info(`Uploaded image ${imagePath} → ${imageKey}`);
1060
+ return imageKey;
1035
1061
  });
1036
- const imageKey = res?.image_key;
1037
- if (!imageKey)
1038
- throw new Error(`Failed to upload image: no image_key in response (${JSON.stringify(res)})`);
1039
- logger.info(`Uploaded image ${imagePath} → ${imageKey}`);
1040
- return imageKey;
1041
1062
  }
1042
1063
  export async function uploadFile(larkAppId, filePath, opts) {
1043
1064
  assertLarkTransport(larkAppId, 'uploadFile');
1044
- const c = getBotUploadClient(larkAppId);
1045
- const buf = readFileSync(filePath);
1046
- const ext = extname(filePath).toLowerCase();
1047
- const fileType = EXT_TO_FILE_TYPE[ext] ?? 'stream';
1048
- const fileName = basename(filePath);
1049
- // `duration` (ms) only applies to opus voice uploads — it sets the length
1050
- // shown on the Feishu voice bubble. Lark wants ≥1000ms; clamp up.
1051
- const duration = fileType === 'opus' && opts?.duration
1052
- ? Math.max(1000, Math.round(opts.duration))
1053
- : undefined;
1054
- // SDK returns { file_key } directly (not wrapped in { code, data })
1055
- const res = await c.im.v1.file.create({
1056
- data: { file_type: fileType, file_name: fileName, file: buf, ...(duration ? { duration } : {}) },
1065
+ return executeWithLarkGate(larkAppId, 'uploadFile', async () => {
1066
+ const c = getBotUploadClient(larkAppId);
1067
+ const buf = readFileSync(filePath);
1068
+ const ext = extname(filePath).toLowerCase();
1069
+ const fileType = EXT_TO_FILE_TYPE[ext] ?? 'stream';
1070
+ const fileName = basename(filePath);
1071
+ // `duration` (ms) only applies to opus voice uploads it sets the length
1072
+ // shown on the Feishu voice bubble. Lark wants ≥1000ms; clamp up.
1073
+ const duration = fileType === 'opus' && opts?.duration
1074
+ ? Math.max(1000, Math.round(opts.duration))
1075
+ : undefined;
1076
+ // SDK returns { file_key } directly (not wrapped in { code, data })
1077
+ const res = await c.im.v1.file.create({
1078
+ data: { file_type: fileType, file_name: fileName, file: buf, ...(duration ? { duration } : {}) },
1079
+ });
1080
+ const fileKey = res?.file_key;
1081
+ if (!fileKey)
1082
+ throw new Error(`Failed to upload file: no file_key in response (${JSON.stringify(res)})`);
1083
+ logger.info(`Uploaded file ${filePath} → ${fileKey}`);
1084
+ return fileKey;
1057
1085
  });
1058
- const fileKey = res?.file_key;
1059
- if (!fileKey)
1060
- throw new Error(`Failed to upload file: no file_key in response (${JSON.stringify(res)})`);
1061
- logger.info(`Uploaded file ${filePath} → ${fileKey}`);
1062
- return fileKey;
1063
1086
  }
1064
1087
  export async function resolveAllowedUsersWithMap(larkAppId, raw) {
1065
1088
  const map = new Map();