@openclaw/line 2026.7.2-beta.7 → 2026.7.34

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 (117) hide show
  1. package/README.md +1 -1
  2. package/dist/.setup/accounts-DJVOv1JI.mjs +107 -0
  3. package/dist/.setup/api-D3h9w6oz.mjs +3 -0
  4. package/dist/.setup/api-DdlGHKoX.mjs +11 -0
  5. package/dist/.setup/basic-cards-C8Qwh2X1.mjs +307 -0
  6. package/dist/{card-command-ty11OJNt.js → .setup/card-command-CWrkUiGY.mjs} +51 -23
  7. package/dist/{channel-D4i_K4fQ.js → .setup/channel-Du0PrvOH.mjs} +76 -66
  8. package/dist/.setup/channel.runtime-b3suPB-W.mjs +4 -0
  9. package/dist/.setup/flex-templates-BP6VHjzK.mjs +814 -0
  10. package/dist/{markdown-to-line-DMDQTMhx.js → .setup/markdown-to-line-o89GT1Qn.mjs} +252 -254
  11. package/dist/{monitor-DXEodYFJ.js → .setup/monitor-DpxjN6Ks.mjs} +491 -658
  12. package/dist/.setup/monitor.runtime-BS-cGD5Q.mjs +2 -0
  13. package/dist/.setup/outbound.runtime-BeNDuEIF.mjs +2 -0
  14. package/dist/{probe-CM03wo6r.js → .setup/probe-BslD77tJ.mjs} +9 -7
  15. package/dist/.setup/probe.runtime-YwWmWIlk.mjs +2 -0
  16. package/dist/{reply-payload-transform-D5-dHB8b.js → .setup/reply-payload-transform-CYQIy_x8.mjs} +204 -80
  17. package/dist/{setup-surface-DRQ7n0En.js → .setup/setup-surface-M1ivmZ-G.mjs} +143 -158
  18. package/dist/api.js +2 -11
  19. package/dist/channel-plugin-api.js +1 -1
  20. package/dist/contract-api.js +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/runtime-api.js +56 -15
  23. package/dist/setup-api.js +1 -1
  24. package/dist/setup-entry.js +2 -1
  25. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupCreateRoute.d.ts.map +1 -1
  26. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupFailedType.d.ts.map +1 -1
  27. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupJobFailedType.d.ts.map +1 -1
  28. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupJobStatus.d.ts.map +1 -1
  29. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupStatus.d.ts.map +1 -1
  30. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBoxBorderWidth.d.ts.map +1 -1
  31. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBoxCornerRadius.d.ts.map +1 -1
  32. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBubble.d.ts.map +1 -1
  33. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexIconSize.d.ts.map +1 -1
  34. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexSpanSize.d.ts.map +1 -1
  35. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexTextFontSize.d.ts.map +1 -1
  36. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/numberOfMessagesResponse.d.ts.map +1 -1
  37. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/postbackAction.d.ts.map +1 -1
  38. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/subscriptionPeriodDemographic.d.ts.map +1 -1
  39. package/node_modules/@line/bot-sdk/dist/cjs/version.d.ts +1 -1
  40. package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
  41. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/event.d.ts +1 -2
  42. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/event.d.ts.map +1 -1
  43. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.d.ts +0 -1
  44. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.d.ts.map +1 -1
  45. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.js +0 -1
  46. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.js.map +1 -1
  47. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupCreateRoute.d.ts.map +1 -1
  48. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupFailedType.d.ts.map +1 -1
  49. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupJobFailedType.d.ts.map +1 -1
  50. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupJobStatus.d.ts.map +1 -1
  51. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupStatus.d.ts.map +1 -1
  52. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxBorderWidth.d.ts.map +1 -1
  53. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxCornerRadius.d.ts.map +1 -1
  54. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBubble.d.ts.map +1 -1
  55. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexIconSize.d.ts.map +1 -1
  56. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexSpanSize.d.ts.map +1 -1
  57. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexTextFontSize.d.ts.map +1 -1
  58. package/node_modules/@line/bot-sdk/dist/messaging-api/model/numberOfMessagesResponse.d.ts.map +1 -1
  59. package/node_modules/@line/bot-sdk/dist/messaging-api/model/postbackAction.d.ts.map +1 -1
  60. package/node_modules/@line/bot-sdk/dist/messaging-api/model/subscriptionPeriodDemographic.d.ts.map +1 -1
  61. package/node_modules/@line/bot-sdk/dist/version.d.ts +1 -1
  62. package/node_modules/@line/bot-sdk/dist/version.js +1 -1
  63. package/node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts +1 -2
  64. package/node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts.map +1 -1
  65. package/node_modules/@line/bot-sdk/dist/webhook/model/models.d.ts +0 -1
  66. package/node_modules/@line/bot-sdk/dist/webhook/model/models.d.ts.map +1 -1
  67. package/node_modules/@line/bot-sdk/dist/webhook/model/models.js +0 -1
  68. package/node_modules/@line/bot-sdk/dist/webhook/model/models.js.map +1 -1
  69. package/node_modules/@line/bot-sdk/lib/insight/model/getNumberOfFollowersResponse.ts +1 -1
  70. package/node_modules/@line/bot-sdk/lib/liff/model/liffScope.ts +1 -1
  71. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupCreateRoute.ts +4 -1
  72. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupFailedType.ts +2 -1
  73. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupJobFailedType.ts +2 -1
  74. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupJobStatus.ts +4 -1
  75. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupStatus.ts +6 -1
  76. package/node_modules/@line/bot-sdk/lib/messaging-api/model/botInfoResponse.ts +1 -1
  77. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBoxBorderWidth.ts +6 -1
  78. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBoxCornerRadius.ts +7 -1
  79. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBubble.ts +7 -1
  80. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexIconSize.ts +10 -1
  81. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexSpanSize.ts +10 -1
  82. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexTextFontSize.ts +10 -1
  83. package/node_modules/@line/bot-sdk/lib/messaging-api/model/getAggregationUnitNameListResponse.ts +1 -1
  84. package/node_modules/@line/bot-sdk/lib/messaging-api/model/getFollowersResponse.ts +1 -1
  85. package/node_modules/@line/bot-sdk/lib/messaging-api/model/getJoinedMembershipUsersResponse.ts +1 -1
  86. package/node_modules/@line/bot-sdk/lib/messaging-api/model/issueLinkTokenResponse.ts +1 -1
  87. package/node_modules/@line/bot-sdk/lib/messaging-api/model/numberOfMessagesResponse.ts +5 -2
  88. package/node_modules/@line/bot-sdk/lib/messaging-api/model/postbackAction.ts +4 -1
  89. package/node_modules/@line/bot-sdk/lib/messaging-api/model/subscriptionPeriodDemographic.ts +5 -1
  90. package/node_modules/@line/bot-sdk/lib/version.ts +1 -1
  91. package/node_modules/@line/bot-sdk/lib/webhook/.openapi-generator/FILES +0 -1
  92. package/node_modules/@line/bot-sdk/lib/webhook/model/event.ts +0 -2
  93. package/node_modules/@line/bot-sdk/lib/webhook/model/models.ts +0 -1
  94. package/node_modules/@line/bot-sdk/lib/webhook/model/stickerMessageContent.ts +1 -1
  95. package/node_modules/@line/bot-sdk/node_modules/@types/node/README.md +1 -1
  96. package/node_modules/@line/bot-sdk/node_modules/@types/node/fs/promises.d.ts +5 -16
  97. package/node_modules/@line/bot-sdk/node_modules/@types/node/package.json +3 -3
  98. package/node_modules/@line/bot-sdk/package.json +3 -3
  99. package/openclaw.plugin.json +75 -57
  100. package/package.json +6 -71
  101. package/dist/accounts-BqEVsDoB.js +0 -103
  102. package/dist/channel.runtime-BdhK8Xw7.js +0 -4
  103. package/dist/flex-templates-iKJsyCq-.js +0 -1339
  104. package/dist/monitor.runtime-CZquR7jI.js +0 -2
  105. package/dist/outbound.runtime-BS0IhU_M.js +0 -2
  106. package/dist/probe.runtime-D13ZtXsd.js +0 -2
  107. package/dist/quick-reply-fallback-D86FwAfr.js +0 -56
  108. package/dist/send-receipt-CY2ey8XH.js +0 -107
  109. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.d.ts +0 -24
  110. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.d.ts.map +0 -1
  111. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.js +0 -14
  112. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.js.map +0 -1
  113. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.d.ts +0 -24
  114. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.d.ts.map +0 -1
  115. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.js +0 -13
  116. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.js.map +0 -1
  117. package/node_modules/@line/bot-sdk/lib/webhook/model/messageEditedEvent.ts +0 -32
@@ -1,23 +1,19 @@
1
- import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BqEVsDoB.js";
2
- import { i as hasLineCredentials, n as lineSetupAdapter, r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-DRQ7n0En.js";
3
- import { i as resolveExactLineGroupConfigKey, n as getLineRuntime, t as buildLineQuickReplyFallbackText } from "./quick-reply-fallback-D86FwAfr.js";
4
- import { n as parseLineDirectives, r as LineChannelConfigSchema, t as hasLineDirectives } from "./reply-payload-transform-D5-dHB8b.js";
5
- import { i as resolveLineOutboundMedia, n as buildLineMediaMessage, r as hasLineSpecificMediaOptions, t as createLineSendReceipt } from "./send-receipt-CY2ey8XH.js";
1
+ import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-DJVOv1JI.mjs";
2
+ import { n as lineSetupAdapter, r as hasLineCredentials, t as lineSetupWizard } from "./setup-surface-M1ivmZ-G.mjs";
3
+ import { a as resolveLineOutboundMedia, d as resolveExactLineGroupConfigKey, i as buildLineQuickReplyFallbackText, l as LineChannelConfigSchema, n as parseLineDirectives, r as createLineSendReceipt, s as getLineRuntime, t as hasLineDirectives } from "./reply-payload-transform-CYQIy_x8.mjs";
6
4
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
7
- import { buildDmGroupAccountAllowlistAdapter, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
8
5
  import { buildChannelOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
9
6
  import { createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing";
10
- import { buildChannelGroupsScopeTree, createRestrictSendersChannelSecurity, resolveScopeRequireMention } from "openclaw/plugin-sdk/channel-policy";
7
+ import { createRestrictSendersChannelSecurity, resolveChannelGroupRequireMention } from "openclaw/plugin-sdk/channel-policy";
11
8
  import { createEmptyChannelDirectoryAdapter } from "openclaw/plugin-sdk/directory-runtime";
12
- import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
13
9
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
10
+ import { clearAccountEntryFields } from "openclaw/plugin-sdk/core";
11
+ import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
14
12
  import { createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
15
13
  import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
16
- import { clearAccountEntryFields } from "openclaw/plugin-sdk/core";
17
14
  import { defineChannelMessageAdapter } from "openclaw/plugin-sdk/channel-outbound";
18
15
  import { createAttachedChannelResultAdapter, createEmptyChannelResult } from "openclaw/plugin-sdk/channel-send-result";
19
16
  import { resolveOutboundMediaUrls } from "openclaw/plugin-sdk/reply-payload";
20
- import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
21
17
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
22
18
  import { buildTokenChannelStatusSummary, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, createDependentCredentialStatusIssueCollector } from "openclaw/plugin-sdk/status-helpers";
23
19
  //#region extensions/line/src/bindings.ts
@@ -106,19 +102,14 @@ const lineChannelPluginCommon = {
106
102
  describeAccount: (account) => describeWebhookAccountSnapshot({
107
103
  account,
108
104
  configured: hasLineCredentials(account),
109
- extra: {
110
- tokenSource: account.tokenSource ?? void 0,
111
- signingSecretSource: account.signingSecretSource ?? void 0,
112
- tokenStatus: account.tokenStatus,
113
- signingSecretStatus: account.signingSecretStatus
114
- }
105
+ extra: { tokenSource: account.tokenSource ?? void 0 }
115
106
  })
116
107
  }
117
108
  };
118
109
  //#endregion
119
110
  //#region extensions/line/src/gateway.ts
120
- const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-D13ZtXsd.js"));
121
- const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-CZquR7jI.js"));
111
+ const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-YwWmWIlk.mjs"));
112
+ const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-BS-cGD5Q.mjs"));
122
113
  const lineGatewayAdapter = {
123
114
  startAccount: async (ctx) => {
124
115
  const account = ctx.account;
@@ -208,14 +199,16 @@ const lineGatewayAdapter = {
208
199
  //#endregion
209
200
  //#region extensions/line/src/group-policy.ts
210
201
  function resolveLineGroupRequireMention(params) {
211
- const tree = buildChannelGroupsScopeTree(params.cfg, "line", params.accountId);
212
- const matchedKey = resolveExactLineGroupConfigKey({
213
- groups: tree.scopes,
202
+ const exactGroupId = resolveExactLineGroupConfigKey({
203
+ cfg: params.cfg,
204
+ accountId: params.accountId,
214
205
  groupId: params.groupId
215
206
  });
216
- return resolveScopeRequireMention({
217
- tree,
218
- path: matchedKey ? [matchedKey] : []
207
+ return resolveChannelGroupRequireMention({
208
+ cfg: params.cfg,
209
+ channel: "line",
210
+ groupId: exactGroupId ?? params.groupId,
211
+ accountId: params.accountId
219
212
  });
220
213
  }
221
214
  //#endregion
@@ -233,13 +226,42 @@ function inferLineTargetChatType(target) {
233
226
  }
234
227
  //#endregion
235
228
  //#region extensions/line/src/outbound.ts
236
- const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-BS0IhU_M.js"));
237
- const LINE_FLEX_ALT_TEXT_LIMIT = 1500;
229
+ const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-BeNDuEIF.mjs"));
230
+ function isLineUserTarget(target) {
231
+ const normalized = target.trim().replace(/^line:(group|room|user):/i, "").replace(/^line:/i, "");
232
+ return /^U/i.test(normalized);
233
+ }
234
+ function hasLineSpecificMediaOptions(lineData) {
235
+ return Boolean(lineData.mediaKind ?? lineData.previewImageUrl?.trim() ?? (typeof lineData.durationMs === "number" ? lineData.durationMs : void 0) ?? lineData.trackingId?.trim());
236
+ }
237
+ function buildLineMediaMessageObject(resolved, opts) {
238
+ switch (resolved.mediaKind) {
239
+ case "video": {
240
+ const previewImageUrl = resolved.previewImageUrl?.trim();
241
+ if (!previewImageUrl) throw new Error("LINE video messages require previewImageUrl to reference an image URL");
242
+ return {
243
+ type: "video",
244
+ originalContentUrl: resolved.mediaUrl,
245
+ previewImageUrl,
246
+ ...opts?.allowTrackingId && resolved.trackingId ? { trackingId: resolved.trackingId } : {}
247
+ };
248
+ }
249
+ case "audio": return {
250
+ type: "audio",
251
+ originalContentUrl: resolved.mediaUrl,
252
+ duration: resolved.durationMs ?? 6e4
253
+ };
254
+ default: return {
255
+ type: "image",
256
+ originalContentUrl: resolved.mediaUrl,
257
+ previewImageUrl: resolved.previewImageUrl ?? resolved.mediaUrl
258
+ };
259
+ }
260
+ }
238
261
  const lineOutboundAdapter = {
239
262
  deliveryMode: "direct",
240
263
  chunker: (text, limit) => getLineRuntime().channel.text.chunkMarkdownText(text, limit),
241
264
  textChunkLimit: 5e3,
242
- sanitizeText: ({ text }) => sanitizeAssistantVisibleText(text),
243
265
  sendPayload: async ({ to, payload, accountId, cfg, onDeliveryResult }) => {
244
266
  const runtime = getLineRuntime();
245
267
  const outboundRuntime = await loadLineOutboundRuntime();
@@ -281,12 +303,6 @@ const lineOutboundAdapter = {
281
303
  const chunks = processed.text ? runtime.channel.text.chunkMarkdownText(processed.text, chunkLimit) : [];
282
304
  const mediaUrls = resolveOutboundMediaUrls(payload);
283
305
  const useLineSpecificMedia = hasLineSpecificMediaOptions(lineData);
284
- const mediaOptions = {
285
- mediaKind: useLineSpecificMedia ? lineData.mediaKind : "image",
286
- previewImageUrl: lineData.previewImageUrl,
287
- durationMs: lineData.durationMs,
288
- trackingId: lineData.trackingId
289
- };
290
306
  const shouldSendQuickRepliesInline = chunks.length === 0 && hasQuickReplies;
291
307
  const sendMediaMessages = async () => {
292
308
  for (const url of mediaUrls) {
@@ -301,7 +317,12 @@ const lineOutboundAdapter = {
301
317
  }));
302
318
  continue;
303
319
  }
304
- const resolved = await resolveLineOutboundMedia(trimmed, mediaOptions);
320
+ const resolved = await resolveLineOutboundMedia(trimmed, {
321
+ mediaKind: lineData.mediaKind,
322
+ previewImageUrl: lineData.previewImageUrl,
323
+ durationMs: lineData.durationMs,
324
+ trackingId: lineData.trackingId
325
+ });
305
326
  await recordResult((lineRuntime?.sendMessageLine ?? outboundRuntime.sendMessageLine)(to, "", {
306
327
  verbose: false,
307
328
  mediaUrl: resolved.mediaUrl,
@@ -347,12 +368,12 @@ const lineOutboundAdapter = {
347
368
  }
348
369
  const sendMediaAfterText = !(hasQuickReplies && chunks.length > 0);
349
370
  if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && !sendMediaAfterText) await sendMediaMessages();
350
- if (chunks.length > 0) for (const [i, chunk] of chunks.entries()) if (i === chunks.length - 1 && hasQuickReplies) await recordResult(sendQuickReplies(to, chunk, quickReplies, {
371
+ if (chunks.length > 0) for (let i = 0; i < chunks.length; i += 1) if (i === chunks.length - 1 && hasQuickReplies) await recordResult(sendQuickReplies(to, chunks[i], quickReplies, {
351
372
  verbose: false,
352
373
  cfg,
353
374
  accountId: accountId ?? void 0
354
375
  }));
355
- else await recordResult(sendText(to, chunk, {
376
+ else await recordResult(sendText(to, chunks[i], {
356
377
  verbose: false,
357
378
  cfg,
358
379
  accountId: accountId ?? void 0
@@ -361,7 +382,7 @@ const lineOutboundAdapter = {
361
382
  const quickReplyMessages = [];
362
383
  if (lineData.flexMessage) quickReplyMessages.push({
363
384
  type: "flex",
364
- altText: truncateUtf16Safe(lineData.flexMessage.altText, LINE_FLEX_ALT_TEXT_LIMIT),
385
+ altText: truncateUtf16Safe(lineData.flexMessage.altText, 400),
365
386
  contents: lineData.flexMessage.contents
366
387
  });
367
388
  if (lineData.templateMessage) {
@@ -377,13 +398,27 @@ const lineOutboundAdapter = {
377
398
  });
378
399
  for (const flexMsg of processed.flexMessages) quickReplyMessages.push({
379
400
  type: "flex",
380
- altText: truncateUtf16Safe(flexMsg.altText, LINE_FLEX_ALT_TEXT_LIMIT),
401
+ altText: truncateUtf16Safe(flexMsg.altText, 400),
381
402
  contents: flexMsg.contents
382
403
  });
383
404
  for (const url of mediaUrls) {
384
405
  const trimmed = url?.trim();
385
406
  if (!trimmed) continue;
386
- quickReplyMessages.push(await buildLineMediaMessage(trimmed, mediaOptions, to));
407
+ if (!useLineSpecificMedia) {
408
+ quickReplyMessages.push({
409
+ type: "image",
410
+ originalContentUrl: trimmed,
411
+ previewImageUrl: trimmed
412
+ });
413
+ continue;
414
+ }
415
+ const resolved = await resolveLineOutboundMedia(trimmed, {
416
+ mediaKind: lineData.mediaKind,
417
+ previewImageUrl: lineData.previewImageUrl,
418
+ durationMs: lineData.durationMs,
419
+ trackingId: lineData.trackingId
420
+ });
421
+ quickReplyMessages.push(buildLineMediaMessageObject(resolved, { allowTrackingId: isLineUserTarget(to) }));
387
422
  }
388
423
  if (quickReplyMessages.length > 0 && quickReply) {
389
424
  const lastIndex = quickReplyMessages.length - 1;
@@ -503,7 +538,7 @@ const lineMessageAdapter = defineChannelMessageAdapter({
503
538
  });
504
539
  //#endregion
505
540
  //#region extensions/line/src/status.ts
506
- const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-D13ZtXsd.js"));
541
+ const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-YwWmWIlk.mjs"));
507
542
  const collectLineStatusIssues = createDependentCredentialStatusIssueCollector({
508
543
  channel: "line",
509
544
  dependencySourceKey: "tokenSource",
@@ -522,16 +557,13 @@ const lineStatusAdapter = createComputedAccountStatusAdapter({
522
557
  configured: hasLineCredentials(account),
523
558
  extra: {
524
559
  tokenSource: account.tokenSource,
525
- signingSecretSource: account.signingSecretSource,
526
- tokenStatus: account.tokenStatus,
527
- signingSecretStatus: account.signingSecretStatus,
528
560
  mode: "webhook"
529
561
  }
530
562
  })
531
563
  });
532
564
  //#endregion
533
565
  //#region extensions/line/src/channel.ts
534
- const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-BdhK8Xw7.js"));
566
+ const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-b3suPB-W.mjs"));
535
567
  const lineSecurityAdapter = createRestrictSendersChannelSecurity({
536
568
  channelKey: "line",
537
569
  resolveDmPolicy: (account) => account.config.dmPolicy,
@@ -552,27 +584,6 @@ const linePlugin = createChatChannelPlugin({
552
584
  ...lineChannelPluginCommon,
553
585
  setupWizard: lineSetupWizard,
554
586
  groups: { resolveRequireMention: resolveLineGroupRequireMention },
555
- allowlist: buildDmGroupAccountAllowlistAdapter({
556
- channelId: "line",
557
- resolveAccount: ({ cfg, accountId }) => resolveLineAccount({
558
- cfg,
559
- accountId: accountId ?? void 0
560
- }),
561
- normalize: ({ cfg, accountId, values }) => lineConfigAdapter.formatAllowFrom({
562
- cfg,
563
- accountId,
564
- allowFrom: values
565
- }),
566
- resolveDmAllowFrom: (account) => account.config.allowFrom,
567
- resolveGroupAllowFrom: (account) => account.config.groupAllowFrom,
568
- resolveDmPolicy: (account) => account.config.dmPolicy,
569
- resolveGroupPolicy: (account) => account.config.groupPolicy,
570
- resolveGroupOverrides: createFlatAllowlistOverrideResolver({
571
- resolveRecord: (account) => account.config.groups,
572
- label: (groupId) => groupId,
573
- resolveEntries: (groupCfg) => groupCfg?.allowFrom
574
- })
575
- }),
576
587
  messaging: {
577
588
  targetPrefixes: ["line"],
578
589
  normalizeTarget: normalizeLineMessagingTarget,
@@ -613,7 +624,6 @@ const linePlugin = createChatChannelPlugin({
613
624
  },
614
625
  directory: createEmptyChannelDirectoryAdapter(),
615
626
  setup: lineSetupAdapter,
616
- setupContract: lineSetupContract,
617
627
  status: lineStatusAdapter,
618
628
  gateway: lineGatewayAdapter,
619
629
  message: lineMessageAdapter,
@@ -0,0 +1,4 @@
1
+ import { S as pushMessageLine } from "./markdown-to-line-o89GT1Qn.mjs";
2
+ import { t as monitorLineProvider } from "./monitor-DpxjN6Ks.mjs";
3
+ import { t as probeLineBot } from "./probe-BslD77tJ.mjs";
4
+ export { monitorLineProvider, probeLineBot, pushMessageLine };