@openclaw/line 2026.10.2 → 2026.10.5-beta.2

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 (200) hide show
  1. package/dist/.setup/api-BxKwG8cd.mjs +3 -0
  2. package/dist/.setup/{api-CMU7bG-C.mjs → api-DPd9f0cI.mjs} +2 -2
  3. package/dist/.setup/{card-command-BrU6u6pm.mjs → card-command-BMLk4YKh.mjs} +15 -24
  4. package/dist/.setup/{channel-InKuXaRS.mjs → channel-DVuSrT_i.mjs} +161 -227
  5. package/dist/.setup/channel.runtime-IN_F95BO.mjs +4 -0
  6. package/dist/.setup/{monitor-Bb3HieCd.mjs → monitor-BY32s5Um.mjs} +68 -83
  7. package/dist/.setup/monitor.runtime-DKuc2SBe.mjs +2 -0
  8. package/dist/.setup/outbound.runtime-DLyndDng.mjs +3 -0
  9. package/dist/.setup/probe.runtime-D2MUF_B_.mjs +2 -0
  10. package/dist/.setup/{send-DAwROcyQ.mjs → send-g4gFsc9W.mjs} +51 -71
  11. package/dist/.setup/{send-retry-B9Nor0-J.mjs → send-retry-Dzbkz5wG.mjs} +186 -379
  12. package/dist/.setup/{setup-surface-1jkHGWg7.mjs → setup-surface-CYd8oqzt.mjs} +1 -1
  13. package/dist/.setup/{template-messages-DdF9zv_j.mjs → template-messages-CwPsGQjw.mjs} +67 -118
  14. package/dist/api.js +2 -2
  15. package/dist/channel-plugin-api.js +1 -1
  16. package/dist/index.js +1 -3
  17. package/dist/setup-api.js +1 -1
  18. package/dist/setup-entry.js +1 -1
  19. package/node_modules/@line/bot-sdk/dist/channel-access-token/api/channelAccessTokenClient.d.ts.map +1 -1
  20. package/node_modules/@line/bot-sdk/dist/cjs/channel-access-token/api/channelAccessTokenClient.d.ts.map +1 -1
  21. package/node_modules/@line/bot-sdk/dist/cjs/channel-access-token/api/channelAccessTokenClient.js.map +1 -1
  22. package/node_modules/@line/bot-sdk/dist/cjs/exceptions.d.ts.map +1 -1
  23. package/node_modules/@line/bot-sdk/dist/cjs/exceptions.js.map +1 -1
  24. package/node_modules/@line/bot-sdk/dist/cjs/http-fetch.d.ts.map +1 -1
  25. package/node_modules/@line/bot-sdk/dist/cjs/http-fetch.js.map +1 -1
  26. package/node_modules/@line/bot-sdk/dist/cjs/index.js.map +1 -1
  27. package/node_modules/@line/bot-sdk/dist/cjs/insight/api/insightClient.d.ts.map +1 -1
  28. package/node_modules/@line/bot-sdk/dist/cjs/insight/api/insightClient.js.map +1 -1
  29. package/node_modules/@line/bot-sdk/dist/cjs/liff/api/liffClient.d.ts.map +1 -1
  30. package/node_modules/@line/bot-sdk/dist/cjs/liff/api/liffClient.js.map +1 -1
  31. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.d.ts.map +1 -1
  32. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.factory.generated.js.map +1 -1
  33. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.d.ts +38 -0
  34. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.d.ts.map +1 -1
  35. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.js +46 -0
  36. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.js.map +1 -1
  37. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.js.map +1 -1
  38. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceBlobClient.d.ts.map +1 -1
  39. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceBlobClient.js +15 -5
  40. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceBlobClient.js.map +1 -1
  41. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceClient.d.ts.map +1 -1
  42. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceClient.js.map +1 -1
  43. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiBlobClient.d.ts.map +1 -1
  44. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiBlobClient.js.map +1 -1
  45. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.d.ts +39 -0
  46. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.d.ts.map +1 -1
  47. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.js +59 -0
  48. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.js.map +1 -1
  49. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/models.d.ts +5 -0
  50. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/models.d.ts.map +1 -1
  51. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/models.js +5 -0
  52. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/models.js.map +1 -1
  53. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpMessagesRequest.d.ts +5 -0
  54. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpMessagesRequest.d.ts.map +1 -1
  55. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedButton.d.ts +26 -0
  56. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedButton.d.ts.map +1 -0
  57. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedButton.js +14 -0
  58. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedButton.js.map +1 -0
  59. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedEmphasizedItem.d.ts +27 -0
  60. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedEmphasizedItem.d.ts.map +1 -0
  61. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedEmphasizedItem.js +14 -0
  62. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedEmphasizedItem.js.map +1 -0
  63. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedItem.d.ts +26 -0
  64. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedItem.d.ts.map +1 -0
  65. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedItem.js +14 -0
  66. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedItem.js.map +1 -0
  67. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageBody.d.ts +32 -0
  68. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageBody.d.ts.map +1 -0
  69. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageBody.js +14 -0
  70. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageBody.js.map +1 -0
  71. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageRequest.d.ts +32 -0
  72. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageRequest.d.ts.map +1 -0
  73. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageRequest.js +14 -0
  74. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/pnpTemplatedMessageRequest.js.map +1 -0
  75. package/node_modules/@line/bot-sdk/dist/cjs/middleware.js.map +1 -1
  76. package/node_modules/@line/bot-sdk/dist/cjs/module/api/lineModuleClient.d.ts.map +1 -1
  77. package/node_modules/@line/bot-sdk/dist/cjs/module/api/lineModuleClient.js.map +1 -1
  78. package/node_modules/@line/bot-sdk/dist/cjs/module-attach/api/lineModuleAttachClient.d.ts.map +1 -1
  79. package/node_modules/@line/bot-sdk/dist/cjs/module-attach/api/lineModuleAttachClient.js.map +1 -1
  80. package/node_modules/@line/bot-sdk/dist/cjs/shop/api/shopClient.d.ts.map +1 -1
  81. package/node_modules/@line/bot-sdk/dist/cjs/shop/api/shopClient.js.map +1 -1
  82. package/node_modules/@line/bot-sdk/dist/cjs/utils.js.map +1 -1
  83. package/node_modules/@line/bot-sdk/dist/cjs/validate-signature.js.map +1 -1
  84. package/node_modules/@line/bot-sdk/dist/cjs/version.d.ts +1 -1
  85. package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
  86. package/node_modules/@line/bot-sdk/dist/exceptions.d.ts.map +1 -1
  87. package/node_modules/@line/bot-sdk/dist/exceptions.js.map +1 -1
  88. package/node_modules/@line/bot-sdk/dist/http-fetch.d.ts.map +1 -1
  89. package/node_modules/@line/bot-sdk/dist/insight/api/insightClient.d.ts.map +1 -1
  90. package/node_modules/@line/bot-sdk/dist/liff/api/liffClient.d.ts.map +1 -1
  91. package/node_modules/@line/bot-sdk/dist/line-bot-client.d.ts.map +1 -1
  92. package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.d.ts +38 -0
  93. package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.d.ts.map +1 -1
  94. package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.js +46 -0
  95. package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.js.map +1 -1
  96. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceBlobClient.d.ts.map +1 -1
  97. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceBlobClient.js +15 -5
  98. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceBlobClient.js.map +1 -1
  99. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceClient.d.ts.map +1 -1
  100. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiBlobClient.d.ts.map +1 -1
  101. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.d.ts +39 -0
  102. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.d.ts.map +1 -1
  103. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.js +61 -0
  104. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.js.map +1 -1
  105. package/node_modules/@line/bot-sdk/dist/messaging-api/model/models.d.ts +5 -0
  106. package/node_modules/@line/bot-sdk/dist/messaging-api/model/models.d.ts.map +1 -1
  107. package/node_modules/@line/bot-sdk/dist/messaging-api/model/models.js +5 -0
  108. package/node_modules/@line/bot-sdk/dist/messaging-api/model/models.js.map +1 -1
  109. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpMessagesRequest.d.ts +5 -0
  110. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpMessagesRequest.d.ts.map +1 -1
  111. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedButton.d.ts +26 -0
  112. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedButton.d.ts.map +1 -0
  113. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedButton.js +13 -0
  114. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedButton.js.map +1 -0
  115. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedEmphasizedItem.d.ts +27 -0
  116. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedEmphasizedItem.d.ts.map +1 -0
  117. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedEmphasizedItem.js +13 -0
  118. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedEmphasizedItem.js.map +1 -0
  119. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedItem.d.ts +26 -0
  120. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedItem.d.ts.map +1 -0
  121. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedItem.js +13 -0
  122. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedItem.js.map +1 -0
  123. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageBody.d.ts +32 -0
  124. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageBody.d.ts.map +1 -0
  125. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageBody.js +13 -0
  126. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageBody.js.map +1 -0
  127. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageRequest.d.ts +32 -0
  128. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageRequest.d.ts.map +1 -0
  129. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageRequest.js +13 -0
  130. package/node_modules/@line/bot-sdk/dist/messaging-api/model/pnpTemplatedMessageRequest.js.map +1 -0
  131. package/node_modules/@line/bot-sdk/dist/module/api/lineModuleClient.d.ts.map +1 -1
  132. package/node_modules/@line/bot-sdk/dist/module-attach/api/lineModuleAttachClient.d.ts.map +1 -1
  133. package/node_modules/@line/bot-sdk/dist/shop/api/shopClient.d.ts.map +1 -1
  134. package/node_modules/@line/bot-sdk/dist/version.d.ts +1 -1
  135. package/node_modules/@line/bot-sdk/dist/version.js +1 -1
  136. package/node_modules/@line/bot-sdk/lib/line-bot-client.generated.ts +68 -0
  137. package/node_modules/@line/bot-sdk/lib/manage-audience/api/manageAudienceBlobClient.ts +15 -5
  138. package/node_modules/@line/bot-sdk/lib/messaging-api/.openapi-generator/FILES +5 -0
  139. package/node_modules/@line/bot-sdk/lib/messaging-api/api/messagingApiClient.ts +89 -0
  140. package/node_modules/@line/bot-sdk/lib/messaging-api/model/models.ts +5 -0
  141. package/node_modules/@line/bot-sdk/lib/messaging-api/model/pnpMessagesRequest.ts +5 -0
  142. package/node_modules/@line/bot-sdk/lib/messaging-api/model/pnpTemplatedButton.ts +26 -0
  143. package/node_modules/@line/bot-sdk/lib/messaging-api/model/pnpTemplatedEmphasizedItem.ts +27 -0
  144. package/node_modules/@line/bot-sdk/lib/messaging-api/model/pnpTemplatedItem.ts +26 -0
  145. package/node_modules/@line/bot-sdk/lib/messaging-api/model/pnpTemplatedMessageBody.ts +33 -0
  146. package/node_modules/@line/bot-sdk/lib/messaging-api/model/pnpTemplatedMessageRequest.ts +33 -0
  147. package/node_modules/@line/bot-sdk/lib/version.ts +1 -1
  148. package/node_modules/@line/bot-sdk/node_modules/@types/node/README.md +2 -2
  149. package/node_modules/@line/bot-sdk/node_modules/@types/node/async_hooks.d.ts +18 -22
  150. package/node_modules/@line/bot-sdk/node_modules/@types/node/buffer.buffer.d.ts +10 -5
  151. package/node_modules/@line/bot-sdk/node_modules/@types/node/buffer.d.ts +7 -0
  152. package/node_modules/@line/bot-sdk/node_modules/@types/node/child_process.d.ts +5 -1
  153. package/node_modules/@line/bot-sdk/node_modules/@types/node/crypto.d.ts +114 -47
  154. package/node_modules/@line/bot-sdk/node_modules/@types/node/dgram.d.ts +119 -4
  155. package/node_modules/@line/bot-sdk/node_modules/@types/node/dns/promises.d.ts +5 -5
  156. package/node_modules/@line/bot-sdk/node_modules/@types/node/dns.d.ts +6 -6
  157. package/node_modules/@line/bot-sdk/node_modules/@types/node/events.d.ts +13 -22
  158. package/node_modules/@line/bot-sdk/node_modules/@types/node/fs/promises.d.ts +79 -66
  159. package/node_modules/@line/bot-sdk/node_modules/@types/node/fs.d.ts +153 -90
  160. package/node_modules/@line/bot-sdk/node_modules/@types/node/http.d.ts +94 -2
  161. package/node_modules/@line/bot-sdk/node_modules/@types/node/http2.d.ts +65 -18
  162. package/node_modules/@line/bot-sdk/node_modules/@types/node/inspector.d.ts +47 -1
  163. package/node_modules/@line/bot-sdk/node_modules/@types/node/inspector.generated.d.ts +167 -0
  164. package/node_modules/@line/bot-sdk/node_modules/@types/node/module.d.ts +1 -0
  165. package/node_modules/@line/bot-sdk/node_modules/@types/node/net.d.ts +139 -15
  166. package/node_modules/@line/bot-sdk/node_modules/@types/node/os.d.ts +30 -30
  167. package/node_modules/@line/bot-sdk/node_modules/@types/node/package.json +3 -18
  168. package/node_modules/@line/bot-sdk/node_modules/@types/node/perf_hooks.d.ts +31 -19
  169. package/node_modules/@line/bot-sdk/node_modules/@types/node/process.d.ts +42 -43
  170. package/node_modules/@line/bot-sdk/node_modules/@types/node/sqlite.d.ts +153 -11
  171. package/node_modules/@line/bot-sdk/node_modules/@types/node/stream/consumers.d.ts +7 -0
  172. package/node_modules/@line/bot-sdk/node_modules/@types/node/stream/web.d.ts +19 -0
  173. package/node_modules/@line/bot-sdk/node_modules/@types/node/stream.d.ts +2 -1
  174. package/node_modules/@line/bot-sdk/node_modules/@types/node/test.d.ts +320 -13
  175. package/node_modules/@line/bot-sdk/node_modules/@types/node/tls.d.ts +50 -15
  176. package/node_modules/@line/bot-sdk/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +5 -0
  177. package/node_modules/@line/bot-sdk/node_modules/@types/node/tty.d.ts +4 -3
  178. package/node_modules/@line/bot-sdk/node_modules/@types/node/url.d.ts +27 -3
  179. package/node_modules/@line/bot-sdk/node_modules/@types/node/util.d.ts +42 -2
  180. package/node_modules/@line/bot-sdk/node_modules/@types/node/v8.d.ts +51 -23
  181. package/node_modules/@line/bot-sdk/node_modules/@types/node/vm.d.ts +52 -87
  182. package/node_modules/@line/bot-sdk/node_modules/@types/node/zlib.d.ts +23 -0
  183. package/node_modules/@line/bot-sdk/node_modules/undici-types/cache-interceptor.d.ts +6 -0
  184. package/node_modules/@line/bot-sdk/node_modules/undici-types/client.d.ts +15 -0
  185. package/node_modules/@line/bot-sdk/node_modules/undici-types/connector.d.ts +2 -0
  186. package/node_modules/@line/bot-sdk/node_modules/undici-types/dispatcher.d.ts +8 -5
  187. package/node_modules/@line/bot-sdk/node_modules/undici-types/errors.d.ts +17 -1
  188. package/node_modules/@line/bot-sdk/node_modules/undici-types/index.d.ts +4 -1
  189. package/node_modules/@line/bot-sdk/node_modules/undici-types/interceptors.d.ts +7 -0
  190. package/node_modules/@line/bot-sdk/node_modules/undici-types/package.json +1 -1
  191. package/node_modules/@line/bot-sdk/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  192. package/node_modules/@line/bot-sdk/node_modules/undici-types/webidl.d.ts +6 -0
  193. package/node_modules/@line/bot-sdk/node_modules/undici-types/websocket.d.ts +2 -0
  194. package/node_modules/@line/bot-sdk/package.json +10 -9
  195. package/package.json +5 -5
  196. package/dist/.setup/api-BBSLQek1.mjs +0 -3
  197. package/dist/.setup/channel.runtime-BEhASjr_.mjs +0 -4
  198. package/dist/.setup/monitor.runtime-C6Kgs5BI.mjs +0 -2
  199. package/dist/.setup/outbound.runtime-BwO_m4n5.mjs +0 -3
  200. package/dist/.setup/probe.runtime-C6LYzOHu.mjs +0 -2
@@ -1,13 +1,13 @@
1
1
  import { n as resolveDefaultLineAccountId, r as resolveLineAccount, t as listLineAccountIds } from "./accounts-DOiM8-y3.mjs";
2
- import { a as normalizeLineAllowEntry, i as hasLineCredentials, r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-1jkHGWg7.mjs";
2
+ import { a as normalizeLineAllowEntry, i as hasLineCredentials, r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-CYd8oqzt.mjs";
3
3
  import { t as getLineRuntime } from "./runtime-V7yh9OeC.mjs";
4
- import { M as inferLineTargetChatType, N as normalizeLineMessagingTarget, O as reportLineQuoteCarrierMissing, S as fitsLineFlexBubble, T as canCarryLineQuoteToken, _ as messageAction, b as truncateLineActionLabel, c as createAgendaCard, d as createActionCard, g as createCardTitle, h as createCardBubble, j as buildLineMediaMessage, k as resolveLineQuoteToken, l as createEventCard, s as createLineSendReceipt, t as explainLineRefusal, y as postbackAction } from "./send-retry-B9Nor0-J.mjs";
5
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
4
+ import { A as resolveLineQuoteToken, C as fitsLineFlexBubble, E as canCarryLineQuoteToken, M as buildLineMediaMessage, N as inferLineTargetChatType, P as normalizeLineMessagingTarget, _ as createCardTitle, b as postbackAction, c as createEventCard, g as createCardBubble, h as cardText, k as reportLineQuoteCarrierMissing, m as cardBox, s as createAgendaCard, t as explainLineRefusal, u as createActionCard, v as messageAction, x as truncateLineActionLabel } from "./send-retry-Dzbkz5wG.mjs";
6
5
  import { buildDmGroupAccountAllowlistAdapter, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
7
6
  import { buildChannelOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
8
7
  import { createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing";
9
8
  import { buildChannelGroupsScopeTree, createRestrictSendersChannelSecurity, resolveScopeRequireMention } from "openclaw/plugin-sdk/channel-policy";
10
9
  import { createChannelDirectoryAdapter, createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-runtime";
10
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
11
11
  import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
12
12
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
13
13
  import { clearAccountFieldsFromConfigSection, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
@@ -17,7 +17,7 @@ import { requireChannelOpenAllowFrom } from "openclaw/plugin-sdk/extension-share
17
17
  import { z } from "zod";
18
18
  import { parseAccessGroupAllowFromEntry } from "openclaw/plugin-sdk/access-groups";
19
19
  import { firstDefined } from "openclaw/plugin-sdk/allow-from";
20
- import { createAccountStatusSink, defineChannelMessageAdapter, listMessageReceiptPlatformIds } from "openclaw/plugin-sdk/channel-outbound";
20
+ import { createAccountStatusSink, createMessageReceiptFromOutboundResults, defineChannelMessageAdapter, listMessageReceiptPlatformIds } from "openclaw/plugin-sdk/channel-outbound";
21
21
  import { buildTokenChannelStatusSummary, collectIssuesForEnabledAccounts, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, createDependentCredentialStatusIssueCollector } from "openclaw/plugin-sdk/status-helpers";
22
22
  import { createChannelPartialDeliveryError, isChannelPartialDeliveryError } from "openclaw/plugin-sdk/channel-inbound";
23
23
  import { createAttachedChannelResultAdapter, createEmptyChannelResult } from "openclaw/plugin-sdk/channel-send-result";
@@ -308,7 +308,6 @@ const lineDoctor = {
308
308
  };
309
309
  //#endregion
310
310
  //#region extensions/line/src/status.ts
311
- const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-C6LYzOHu.mjs"));
312
311
  const collectLineCredentialIssues = createDependentCredentialStatusIssueCollector({
313
312
  channel: "line",
314
313
  dependencySourceKey: "tokenSource",
@@ -363,7 +362,7 @@ const lineStatusAdapter = createComputedAccountStatusAdapter({
363
362
  defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
364
363
  collectStatusIssues: (accounts) => [...collectLineCredentialIssues(accounts), ...collectLineWebhookIssues(accounts)],
365
364
  buildChannelSummary: ({ snapshot }) => buildTokenChannelStatusSummary(snapshot),
366
- probeAccount: async ({ account, timeoutMs }) => await (await loadLineProbeRuntime$1()).probeLineBot(account.channelAccessToken, timeoutMs),
365
+ probeAccount: async ({ account, timeoutMs }) => await (await import("./probe.runtime-D2MUF_B_.mjs")).probeLineBot(account.channelAccessToken, timeoutMs),
367
366
  resolveAccountSnapshot: ({ account, probe }) => ({
368
367
  accountId: account.accountId,
369
368
  name: account.name,
@@ -381,8 +380,6 @@ const lineStatusAdapter = createComputedAccountStatusAdapter({
381
380
  });
382
381
  //#endregion
383
382
  //#region extensions/line/src/gateway.ts
384
- const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-C6LYzOHu.mjs"));
385
- const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-C6Kgs5BI.mjs"));
386
383
  const lineGatewayAdapter = {
387
384
  startAccount: async (ctx) => {
388
385
  const account = ctx.account;
@@ -397,16 +394,16 @@ const lineGatewayAdapter = {
397
394
  statusSink({ lifecycle: "starting" });
398
395
  let lineBotLabel = "";
399
396
  try {
400
- const probe = await (await loadLineProbeRuntime()).probeLineBot(token, 2500);
397
+ const probe = await (await import("./probe.runtime-D2MUF_B_.mjs")).probeLineBot(token, 2500);
401
398
  const displayName = probe.ok ? probe.bot?.displayName?.trim() : null;
402
399
  if (displayName) lineBotLabel = ` (${displayName})`;
403
400
  const delivery = describeLineWebhookDelivery({ webhook: probe.ok ? probe.webhook : void 0 });
404
401
  if (delivery) ctx.log?.warn(`[${account.accountId}] ${delivery.message} Fix: ${delivery.fix}.`);
405
402
  } catch (err) {
406
- if (getLineRuntime().logging.shouldLogVerbose()) ctx.log?.debug?.(`[${account.accountId}] bot probe failed: ${String(err)}`);
403
+ if (getLineRuntime().logging.shouldLogVerbose()) ctx.log?.debug?.(`[${account.accountId}] bot check failed: ${String(err)}`);
407
404
  }
408
405
  ctx.log?.info(`[${account.accountId}] starting LINE provider${lineBotLabel}`);
409
- const { monitorLineProvider } = await loadLineMonitorRuntime();
406
+ const { monitorLineProvider } = await import("./monitor.runtime-DKuc2SBe.mjs");
410
407
  return await monitorLineProvider({
411
408
  channelAccessToken: token,
412
409
  channelSecret: secret,
@@ -464,69 +461,49 @@ function resolveLineGroupRequireMention(params) {
464
461
  //#endregion
465
462
  //#region extensions/line/src/quick-reply-fallback.ts
466
463
  function buildLineQuickReplyFallbackText(labels) {
467
- const normalized = normalizeStringEntries(labels ?? []).slice(0, 13);
464
+ const normalized = normalizeStringEntries(labels).slice(0, 13);
468
465
  if (normalized.length === 0) return "Choose an option.";
469
466
  return `Options:\n${normalized.map((label) => `- ${label}`).join("\n")}`;
470
467
  }
471
468
  //#endregion
472
469
  //#region extensions/line/src/flex-templates/media-control-cards.ts
473
- function horizontalRow(contents, options = {}) {
470
+ function createControlButton(label, data, style = "secondary") {
474
471
  return {
475
- type: "box",
476
- layout: "horizontal",
477
- contents,
478
- ...options
472
+ type: "button",
473
+ action: postbackAction(label, data),
474
+ style,
475
+ height: "sm",
476
+ flex: 1
479
477
  };
480
478
  }
481
479
  function createMediaPlayerCard(params) {
482
- const { title, subtitle, source, imageUrl, isPlaying, progress, controls, extraActions } = params;
480
+ const { title, subtitle, source, imageUrl, isPlaying, controls } = params;
483
481
  const trackInfo = [createCardTitle(title)];
484
- if (subtitle) trackInfo.push({
485
- type: "text",
486
- text: subtitle,
482
+ if (subtitle) trackInfo.push(cardText(subtitle, {
487
483
  size: "md",
488
484
  color: "#666666",
489
485
  wrap: true,
490
486
  margin: "sm"
491
- });
487
+ }));
492
488
  const statusItems = [];
493
- if (isPlaying !== void 0) statusItems.push(horizontalRow([{
494
- type: "box",
495
- layout: "vertical",
496
- contents: [],
489
+ if (isPlaying !== void 0) statusItems.push(cardBox("horizontal", [cardBox("vertical", [], {
497
490
  width: "8px",
498
491
  height: "8px",
499
492
  backgroundColor: isPlaying ? "#06C755" : "#CCCCCC",
500
493
  cornerRadius: "4px"
501
- }, {
502
- type: "text",
503
- text: isPlaying ? "Now Playing" : "Paused",
494
+ }), cardText(isPlaying ? "Now Playing" : "Paused", {
504
495
  size: "xs",
505
496
  color: isPlaying ? "#06C755" : "#888888",
506
497
  weight: "bold",
507
498
  margin: "sm"
508
- }], { alignItems: "center" }));
509
- if (source) statusItems.push({
510
- type: "text",
511
- text: source,
499
+ })], { alignItems: "center" }));
500
+ if (source) statusItems.push(cardText(source, {
512
501
  size: "xs",
513
502
  color: "#AAAAAA",
514
503
  margin: statusItems.length > 0 ? "lg" : void 0
515
- });
516
- if (progress) statusItems.push({
517
- type: "text",
518
- text: progress,
519
- size: "xs",
520
- color: "#888888",
521
- align: "end",
522
- flex: 1
523
- });
524
- const bodyContents = [{
525
- type: "box",
526
- layout: "vertical",
527
- contents: trackInfo
528
- }];
529
- if (statusItems.length > 0) bodyContents.push(horizontalRow(statusItems, {
504
+ }));
505
+ const bodyContents = [cardBox("vertical", trackInfo)];
506
+ if (statusItems.length > 0) bodyContents.push(cardBox("horizontal", statusItems, {
530
507
  margin: "lg",
531
508
  alignItems: "center"
532
509
  }));
@@ -538,112 +515,88 @@ function createMediaPlayerCard(params) {
538
515
  aspectRatio: "1:1",
539
516
  aspectMode: "cover"
540
517
  };
541
- if (controls || extraActions?.length) {
542
- const footerContents = [];
543
- if (controls) {
544
- const controlButtons = [];
545
- for (const [key, label, style] of [
546
- [
547
- "previous",
548
- "⏮",
549
- "secondary"
550
- ],
551
- [
552
- "play",
553
- "▶",
554
- isPlaying ? "secondary" : "primary"
555
- ],
556
- [
557
- "pause",
558
- "⏸",
559
- isPlaying ? "primary" : "secondary"
560
- ],
561
- [
562
- "next",
563
- "⏭",
564
- "secondary"
565
- ]
566
- ]) {
567
- const control = controls[key];
568
- if (!control) continue;
569
- const button = {
570
- type: "button",
571
- action: postbackAction(label, control.data),
572
- style,
573
- flex: 1,
574
- height: "sm"
575
- };
576
- if (key !== "previous") button.margin = controlButtons.length > 0 ? "md" : void 0;
577
- controlButtons.push(button);
578
- }
579
- if (controlButtons.length > 0) footerContents.push(horizontalRow(controlButtons));
580
- }
581
- if (extraActions?.length) footerContents.push(horizontalRow(extraActions.slice(0, 2).map((action, index) => ({
582
- type: "button",
583
- action: postbackAction(truncateLineActionLabel(action.label, 15), action.data),
584
- style: "secondary",
585
- flex: 1,
586
- height: "sm",
587
- margin: index > 0 ? "md" : void 0
588
- })), { margin: "md" }));
589
- if (footerContents.length > 0) bubble.footer = {
590
- type: "box",
591
- layout: "vertical",
592
- contents: footerContents,
593
- paddingAll: "lg",
594
- backgroundColor: "#FAFAFA"
595
- };
518
+ const controlButtons = [];
519
+ for (const [key, label, style] of [
520
+ [
521
+ "previous",
522
+ "⏮",
523
+ "secondary"
524
+ ],
525
+ [
526
+ "play",
527
+ "▶",
528
+ isPlaying ? "secondary" : "primary"
529
+ ],
530
+ [
531
+ "pause",
532
+ "⏸",
533
+ isPlaying ? "primary" : "secondary"
534
+ ],
535
+ [
536
+ "next",
537
+ "⏭",
538
+ "secondary"
539
+ ]
540
+ ]) {
541
+ const button = createControlButton(label, controls[key].data, style);
542
+ if (key !== "previous") button.margin = "md";
543
+ controlButtons.push(button);
596
544
  }
545
+ bubble.footer = cardBox("vertical", [cardBox("horizontal", controlButtons)], {
546
+ paddingAll: "lg",
547
+ backgroundColor: "#FAFAFA"
548
+ });
597
549
  return bubble;
598
550
  }
599
551
  function createAppleTvRemoteCard(params) {
600
552
  const { deviceName, status, actionData } = params;
601
553
  const headerContents = [createCardTitle(deviceName)];
602
- if (status) headerContents.push({
603
- type: "text",
604
- text: status,
554
+ if (status) headerContents.push(cardText(status, {
605
555
  size: "sm",
606
556
  color: "#666666",
607
557
  wrap: true,
608
558
  margin: "sm"
609
- });
610
- const makeButton = (label, data, style = "secondary") => ({
611
- type: "button",
612
- action: postbackAction(label, data),
613
- style,
614
- height: "sm",
615
- flex: 1
616
- });
559
+ }));
560
+ const labels = {
561
+ up: "↑",
562
+ down: "↓",
563
+ left: "←",
564
+ right: "→",
565
+ select: "OK",
566
+ menu: "Menu",
567
+ home: "Home",
568
+ play: "Play",
569
+ pause: "Pause",
570
+ volumeUp: "Vol +",
571
+ volumeDown: "Vol -",
572
+ mute: "Mute"
573
+ };
617
574
  const controlRows = [
618
- horizontalRow([
619
- { type: "filler" },
620
- makeButton("↑", actionData.up),
621
- { type: "filler" }
622
- ]),
623
- horizontalRow([
624
- makeButton("←", actionData.left),
625
- makeButton("OK", actionData.select, "primary"),
626
- makeButton("→", actionData.right)
627
- ], { margin: "md" }),
628
- horizontalRow([
629
- { type: "filler" },
630
- makeButton("↓", actionData.down),
631
- { type: "filler" }
632
- ], { margin: "md" }),
633
- horizontalRow([makeButton("Menu", actionData.menu), makeButton("Home", actionData.home)], { margin: "lg" }),
634
- horizontalRow([makeButton("Play", actionData.play), makeButton("Pause", actionData.pause)], { margin: "md" }),
635
- horizontalRow([
636
- makeButton("Vol +", actionData.volumeUp),
637
- makeButton("Mute", actionData.mute),
638
- makeButton("Vol -", actionData.volumeDown)
639
- ], { margin: "md" })
640
- ];
575
+ [void 0, [
576
+ null,
577
+ "up",
578
+ null
579
+ ]],
580
+ ["md", [
581
+ "left",
582
+ "select",
583
+ "right"
584
+ ]],
585
+ ["md", [
586
+ null,
587
+ "down",
588
+ null
589
+ ]],
590
+ ["lg", ["menu", "home"]],
591
+ ["md", ["play", "pause"]],
592
+ ["md", [
593
+ "volumeUp",
594
+ "mute",
595
+ "volumeDown"
596
+ ]]
597
+ ].map(([margin, buttons]) => cardBox("horizontal", buttons.map((key) => key ? createControlButton(labels[key], actionData[key], key === "select" ? "primary" : "secondary") : { type: "filler" }), margin ? { margin } : {}));
641
598
  return createCardBubble([
642
- {
643
- type: "box",
644
- layout: "vertical",
645
- contents: headerContents
646
- },
599
+ cardBox("vertical", headerContents),
647
600
  {
648
601
  type: "separator",
649
602
  margin: "lg",
@@ -653,76 +606,49 @@ function createAppleTvRemoteCard(params) {
653
606
  ]);
654
607
  }
655
608
  function createDeviceControlCard(params) {
656
- const { deviceName, deviceType, status, isOnline, imageUrl, controls } = params;
657
- const headerContents = [horizontalRow([{
658
- type: "box",
659
- layout: "vertical",
660
- contents: [],
609
+ const { deviceName, deviceType, status, controls } = params;
610
+ const headerContents = [cardBox("horizontal", [cardBox("vertical", [], {
661
611
  width: "10px",
662
612
  height: "10px",
663
- backgroundColor: isOnline !== false ? "#06C755" : "#FF5555",
613
+ backgroundColor: "#06C755",
664
614
  cornerRadius: "5px"
665
- }, {
615
+ }), {
666
616
  ...createCardTitle(deviceName),
667
617
  flex: 1,
668
618
  margin: "md"
669
619
  }], { alignItems: "center" })];
670
- if (deviceType) headerContents.push({
671
- type: "text",
672
- text: deviceType,
620
+ if (deviceType) headerContents.push(cardText(deviceType, {
673
621
  size: "sm",
674
622
  color: "#888888",
675
623
  margin: "sm"
676
- });
677
- if (status) headerContents.push({
678
- type: "box",
679
- layout: "vertical",
680
- contents: [{
681
- type: "text",
682
- text: status,
683
- size: "sm",
684
- color: "#444444",
685
- wrap: true
686
- }],
624
+ }));
625
+ if (status) headerContents.push(cardBox("vertical", [cardText(status, {
626
+ size: "sm",
627
+ color: "#444444",
628
+ wrap: true
629
+ })], {
687
630
  margin: "lg",
688
631
  paddingAll: "md",
689
632
  backgroundColor: "#F8F9FA",
690
633
  cornerRadius: "md"
691
- });
634
+ }));
692
635
  const bubble = createCardBubble(headerContents);
693
- if (imageUrl) bubble.hero = {
694
- type: "image",
695
- url: imageUrl,
696
- size: "full",
697
- aspectRatio: "16:9",
698
- aspectMode: "cover"
699
- };
700
636
  if (controls.length > 0) {
701
637
  const rows = [];
702
638
  const limitedControls = controls.slice(0, 6);
703
639
  for (let i = 0; i < limitedControls.length; i += 2) {
704
640
  const rowButtons = [];
705
- for (const [offset, ctrl] of limitedControls.slice(i, i + 2).entries()) {
706
- const buttonLabel = ctrl.icon ? `${ctrl.icon} ${ctrl.label}` : ctrl.label;
707
- rowButtons.push({
708
- type: "button",
709
- action: postbackAction(truncateLineActionLabel(buttonLabel, 18), ctrl.data),
710
- style: ctrl.style ?? "secondary",
711
- flex: 1,
712
- height: "sm",
713
- margin: offset > 0 ? "md" : void 0
714
- });
715
- }
641
+ for (const [offset, ctrl] of limitedControls.slice(i, i + 2).entries()) rowButtons.push({
642
+ ...createControlButton(truncateLineActionLabel(ctrl.label, 18), ctrl.data),
643
+ margin: offset > 0 ? "md" : void 0
644
+ });
716
645
  if (rowButtons.length === 1) rowButtons.push({ type: "filler" });
717
- rows.push(horizontalRow(rowButtons, { margin: i > 0 ? "md" : void 0 }));
646
+ rows.push(cardBox("horizontal", rowButtons, { margin: i > 0 ? "md" : void 0 }));
718
647
  }
719
- bubble.footer = {
720
- type: "box",
721
- layout: "vertical",
722
- contents: rows,
648
+ bubble.footer = cardBox("vertical", rows, {
723
649
  paddingAll: "lg",
724
650
  backgroundColor: "#FAFAFA"
725
- };
651
+ });
726
652
  }
727
653
  return bubble;
728
654
  }
@@ -731,9 +657,6 @@ function createDeviceControlCard(params) {
731
657
  const QUESTION_ID_PARAM = "line.question";
732
658
  const OPTION_INDEX_PARAM = "line.option";
733
659
  const POSTBACK_DATA_MAX_BYTES = 300;
734
- function withinPostbackLimit(data) {
735
- return Buffer.byteLength(data, "utf8") <= POSTBACK_DATA_MAX_BYTES ? data : void 0;
736
- }
737
660
  /** Encodes one ask_user choice into LINE postback data, or nothing when it cannot fit. */
738
661
  function buildLineQuestionPostbackData(callback) {
739
662
  const questionId = normalizeOptionalString(callback.questionId);
@@ -741,7 +664,8 @@ function buildLineQuestionPostbackData(callback) {
741
664
  const params = new URLSearchParams({ [QUESTION_ID_PARAM]: questionId });
742
665
  if (!Number.isInteger(callback.optionIndex) || callback.optionIndex < 0) return;
743
666
  params.set(OPTION_INDEX_PARAM, String(callback.optionIndex));
744
- return withinPostbackLimit(params.toString());
667
+ const data = params.toString();
668
+ return Buffer.byteLength(data, "utf8") <= POSTBACK_DATA_MAX_BYTES ? data : void 0;
745
669
  }
746
670
  /** Reads a question choice back out of inbound postback data, if it carries one. */
747
671
  function parseLineQuestionPostbackData(data) {
@@ -751,11 +675,17 @@ function parseLineQuestionPostbackData(data) {
751
675
  if (!questionId) return;
752
676
  const rawIndex = normalizeOptionalString(params.get(OPTION_INDEX_PARAM));
753
677
  if (!rawIndex || !/^\d+$/.test(rawIndex)) return;
678
+ const optionIndex = Number(rawIndex);
679
+ if (!Number.isSafeInteger(optionIndex)) return;
754
680
  return {
755
681
  questionId,
756
- optionIndex: Number(rawIndex)
682
+ optionIndex
757
683
  };
758
684
  }
685
+ /** Returns whether a postback claims to be a question callback, even if malformed. */
686
+ function isLineQuestionPostbackData(data) {
687
+ return new URLSearchParams(data).has(QUESTION_ID_PARAM);
688
+ }
759
689
  /**
760
690
  * Submit an ask_user choice a LINE tap carried, and report only what the user needs.
761
691
  *
@@ -962,10 +892,7 @@ function renderLinePresentation(payload, presentation, to, sourcePresentation =
962
892
  if (questionLabels.has(button.label)) return null;
963
893
  questionLabels.add(button.label);
964
894
  }
965
- buttons.push({
966
- label: button.label,
967
- action
968
- });
895
+ buttons.push(action);
969
896
  }
970
897
  else if (block.type === "select") {
971
898
  const overflow = [];
@@ -1055,12 +982,12 @@ function renderLineCard(card) {
1055
982
  source: card.source,
1056
983
  imageUrl: card.imageUrl,
1057
984
  isPlaying: card.status ? card.status === "playing" : void 0,
1058
- controls: Object.fromEntries([
1059
- "previous",
1060
- "play",
1061
- "pause",
1062
- "next"
1063
- ].map((action) => [action, { data: lineActionData(action, device) }]))
985
+ controls: {
986
+ previous: { data: lineActionData("previous", device) },
987
+ play: { data: lineActionData("play", device) },
988
+ pause: { data: lineActionData("pause", device) },
989
+ next: { data: lineActionData("next", device) }
990
+ }
1064
991
  })
1065
992
  };
1066
993
  }
@@ -1116,7 +1043,7 @@ function createLineQuickReply(items) {
1116
1043
  }
1117
1044
  //#endregion
1118
1045
  //#region extensions/line/src/outbound.ts
1119
- const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-BwO_m4n5.mjs"));
1046
+ const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-DLyndDng.mjs"));
1120
1047
  function quotedOption(quoteToken) {
1121
1048
  return quoteToken ? { quoteToken } : {};
1122
1049
  }
@@ -1145,15 +1072,26 @@ const lineOutboundAdapter = {
1145
1072
  authorize: assertDirectAdapterHandoff ? () => {
1146
1073
  assertDirectAdapterHandoff();
1147
1074
  return true;
1148
- } : void 0
1075
+ } : void 0,
1076
+ assertDirectAdapterHandoff
1149
1077
  };
1150
- let lastResult = null;
1078
+ const acceptedResults = [];
1151
1079
  const recordResult = async (resultPromise) => {
1152
1080
  let result;
1153
1081
  try {
1154
1082
  result = await resultPromise;
1155
1083
  } catch (error) {
1156
- const refusal = lastResult !== null || isChannelPartialDeliveryError(error) ? void 0 : await explainLineRefusal({
1084
+ if (acceptedResults.length > 0) {
1085
+ const partial = isChannelPartialDeliveryError(error) ? error : void 0;
1086
+ const receipt = createMessageReceiptFromOutboundResults({ results: [...acceptedResults, ...partial?.deliveryResult.receipt ? [{ receipt: partial.deliveryResult.receipt }] : (partial?.deliveryResult.messageIds ?? []).map((messageId) => ({ messageId }))] });
1087
+ throw createChannelPartialDeliveryError(partial?.cause ?? error, {
1088
+ ...partial?.deliveryResult,
1089
+ messageIds: listMessageReceiptPlatformIds(receipt),
1090
+ receipt,
1091
+ visibleReplySent: true
1092
+ });
1093
+ }
1094
+ const refusal = isChannelPartialDeliveryError(error) ? void 0 : await explainLineRefusal({
1157
1095
  error,
1158
1096
  cfg,
1159
1097
  accountId
@@ -1163,13 +1101,14 @@ const lineOutboundAdapter = {
1163
1101
  retryable: refusal.retryable
1164
1102
  }) : error;
1165
1103
  }
1166
- lastResult = result;
1104
+ acceptedResults.push(result);
1167
1105
  try {
1168
1106
  await onDeliveryResult?.(createEmptyChannelResult("line", { ...result }));
1169
1107
  } catch (error) {
1108
+ const receipt = createMessageReceiptFromOutboundResults({ results: acceptedResults });
1170
1109
  throw createChannelPartialDeliveryError(error, {
1171
- messageIds: listMessageReceiptPlatformIds(result.receipt),
1172
- receipt: result.receipt,
1110
+ messageIds: listMessageReceiptPlatformIds(receipt),
1111
+ receipt,
1173
1112
  visibleReplySent: true
1174
1113
  });
1175
1114
  }
@@ -1181,7 +1120,6 @@ const lineOutboundAdapter = {
1181
1120
  const quickReply = quickReplyItems.length ? createLineQuickReply(quickReplyItems) : quickReplies.length ? outboundRuntime.createQuickReplyItems(quickReplies) : void 0;
1182
1121
  const quickReplyLabels = quickReplyItems.length ? quickReplyItems.map((item) => item.label) : quickReplies;
1183
1122
  const sendMessageBatch = async (messages) => {
1184
- if (messages.length === 0) return;
1185
1123
  for (let i = 0; i < messages.length; i += 5) {
1186
1124
  const batch = messages.slice(i, i + 5);
1187
1125
  await recordResult(sendBatch(to, batch, sendOptions));
@@ -1227,7 +1165,7 @@ const lineOutboundAdapter = {
1227
1165
  for (const url of mediaUrls) {
1228
1166
  const trimmed = url?.trim();
1229
1167
  if (!trimmed) continue;
1230
- await recordResult(outboundRuntime.sendMessageLine(to, "", {
1168
+ await recordResult(sendText(to, "", {
1231
1169
  ...sendOptions,
1232
1170
  ...mediaOptions,
1233
1171
  mediaUrl: trimmed
@@ -1300,7 +1238,7 @@ const lineOutboundAdapter = {
1300
1238
  } else if (quickReply) await sendTextWithQuickReply(buildLineQuickReplyFallbackText(quickReplyLabels), replyQuoteToken);
1301
1239
  }
1302
1240
  if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && sendMediaAfterText) await sendMediaMessages();
1303
- const completedResult = lastResult;
1241
+ const completedResult = acceptedResults.at(-1);
1304
1242
  if (!completedResult) throw new Error("Message must be non-empty for LINE sends");
1305
1243
  return createEmptyChannelResult("line", { ...completedResult });
1306
1244
  },
@@ -1310,11 +1248,12 @@ const lineOutboundAdapter = {
1310
1248
  ...ctx,
1311
1249
  payload: { text: ctx.text }
1312
1250
  }),
1313
- sendMedia: async ({ cfg, to, text, mediaUrl, accountId, replyToId, assertDirectAdapterHandoff }) => await (await loadLineOutboundRuntime()).sendMessageLine(to, text, {
1251
+ sendMedia: async ({ cfg, to, text, mediaUrl, accountId, replyToId, assertDirectAdapterHandoff }) => await (await loadLineOutboundRuntime()).pushMessageLine(to, text, {
1314
1252
  verbose: false,
1315
1253
  mediaUrl,
1316
1254
  cfg,
1317
1255
  accountId: accountId ?? void 0,
1256
+ assertDirectAdapterHandoff,
1318
1257
  authorize: assertDirectAdapterHandoff ? () => {
1319
1258
  assertDirectAdapterHandoff();
1320
1259
  return true;
@@ -1328,13 +1267,8 @@ const lineOutboundAdapter = {
1328
1267
  })
1329
1268
  })
1330
1269
  };
1331
- function toLineMessageSendResult(result, kind) {
1332
- const source = result;
1333
- const receipt = result.receipt ?? (result.messageId ? createLineSendReceipt({
1334
- messageId: result.messageId,
1335
- chatId: source.chatId ?? "",
1336
- kind
1337
- }) : void 0);
1270
+ function toLineMessageSendResult(result) {
1271
+ const { receipt } = result;
1338
1272
  if (!receipt) throw new Error("LINE message adapter send did not return a receipt");
1339
1273
  return {
1340
1274
  messageId: result.messageId || receipt.primaryPlatformMessageId,
@@ -1355,9 +1289,9 @@ const lineMessageAdapter = defineChannelMessageAdapter({
1355
1289
  ...ctx,
1356
1290
  payload: { text: ctx.text },
1357
1291
  onDeliveryResult: async (deliveryResult) => {
1358
- await onDeliveryResult?.(toLineMessageSendResult(deliveryResult, "text"));
1292
+ await onDeliveryResult?.(toLineMessageSendResult(deliveryResult));
1359
1293
  }
1360
- }), "text");
1294
+ }));
1361
1295
  },
1362
1296
  media: async ({ onDeliveryResult, ...ctx }) => {
1363
1297
  return toLineMessageSendResult(await lineOutboundAdapter.sendPayload({
@@ -1367,9 +1301,9 @@ const lineMessageAdapter = defineChannelMessageAdapter({
1367
1301
  mediaUrl: ctx.mediaUrl
1368
1302
  },
1369
1303
  onDeliveryResult: async (deliveryResult) => {
1370
- await onDeliveryResult?.(toLineMessageSendResult(deliveryResult, "media"));
1304
+ await onDeliveryResult?.(toLineMessageSendResult(deliveryResult));
1371
1305
  }
1372
- }), "media");
1306
+ }));
1373
1307
  }
1374
1308
  },
1375
1309
  receive: {
@@ -1379,7 +1313,7 @@ const lineMessageAdapter = defineChannelMessageAdapter({
1379
1313
  });
1380
1314
  //#endregion
1381
1315
  //#region extensions/line/src/channel.ts
1382
- const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-BEhASjr_.mjs"));
1316
+ const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-IN_F95BO.mjs"));
1383
1317
  const lineSecurityAdapter = createRestrictSendersChannelSecurity({
1384
1318
  channelKey: "line",
1385
1319
  resolveDmPolicy: (account) => account.config.dmPolicy,
@@ -1542,4 +1476,4 @@ const linePlugin = createChatChannelPlugin({
1542
1476
  outbound: lineOutboundAdapter
1543
1477
  });
1544
1478
  //#endregion
1545
- export { resolveLineQuestionPostback as a, lineChannelPluginCommon as c, parseLineQuestionPostbackData as i, createLineQuickReply as n, buildLineQuickReplyFallbackText as o, prepareLineReplyPayload as r, resolveLineGroupConfigEntry as s, linePlugin as t };
1479
+ export { parseLineQuestionPostbackData as a, resolveLineGroupConfigEntry as c, isLineQuestionPostbackData as i, lineChannelPluginCommon as l, createLineQuickReply as n, resolveLineQuestionPostback as o, prepareLineReplyPayload as r, buildLineQuickReplyFallbackText as s, linePlugin as t };
@@ -0,0 +1,4 @@
1
+ import { a as probeLineBot } from "./send-retry-Dzbkz5wG.mjs";
2
+ import { l as pushMessageLine, m as showLoadingAnimation } from "./send-g4gFsc9W.mjs";
3
+ import { t as monitorLineProvider } from "./monitor-BY32s5Um.mjs";
4
+ export { monitorLineProvider, probeLineBot, pushMessageLine, showLoadingAnimation };