@openclaw/feishu 2026.9.8 → 2026.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { a as normalizeFeishuWebhookPath, c as __reExport, i as DEFAULT_FEISHU_WEBHOOK_PATH, n as normalizeCompatibilityConfig, o as normalizeFeishuExternalKey, r as FeishuChannelConfigSchema, s as __exportAll, t as legacyConfigRules } from "./doctor-contract-3XC0vbIw.mjs";
2
2
  import { a as mergeFeishuAccountConfig, c as resolveFeishuRuntimeAccount, i as listFeishuAccountIds, n as inspectFeishuCredentials, o as resolveDefaultFeishuAccountId, r as listEnabledFeishuAccounts, s as resolveFeishuAccount } from "./accounts-wRqItHug.mjs";
3
3
  import { a as parseFeishuTargetId, c as looksLikeFeishuId, i as parseFeishuDirectConversationId, l as normalizeFeishuTarget, n as buildFeishuModelOverrideParentCandidates, o as resolveConfiguredFeishuGroupSessionScope, r as parseFeishuConversationId, t as buildFeishuConversationId, u as resolveReceiveIdType } from "./conversation-id-C1ofUfU8.mjs";
4
- import { $ as cleanupAmbientCommentTypingReaction, A as sendMessageFeishu, At as resolveFeishuGroupToolPolicy, Ct as resolveFeishuChatReadPreliminaryAuthorization, Dt as resolveFeishuGroupConfig, G as deliverCommentThreadText, H as buildFeishuMediaFallbackText, M as toFeishuMessageSendResult, Mt as normalizeFeishuChatType, Nt as resolveFeishuChatType, S as sendMediaFeishu, St as readFeishuChatInfoWithAuthorization, T as chunkFeishuCardMarkdown, W as resolveFeishuIdentityHeaderTitle, _ as renderFeishuPresentationPayload, _t as authorizeFeishuChatMemberRead, b as withinCardTableLimit, bt as isFeishuGroupReadAllowed, c as buildFeishuPayloadCard, ct as parseFeishuCommentTarget, d as consumeFeishuPresentationFallbackMarker, dt as chunkFeishuMarkdown, f as feishuCardWithinTableLimit, ft as chunkFeishuPostMarkdown, g as renderFeishuPresentationFallbackText, gt as assertFeishuChatReadAllowed, h as readNativeFeishuCard, ht as shouldUseFeishuCard, j as sendStructuredCardFeishu, k as sendCardFeishu, l as buildFeishuPresentationCard, lt as readNativeFeishuCardJson, m as markRenderedFeishuCard, n as createFeishuReplyDeliveryResult, o as FEISHU_PRESENTATION_CAPABILITIES, p as isFeishuCardWithinEnvelope, pt as materializeFeishuPostMarkdownSoftBreaks, s as assertFeishuCardWithinEnvelope, t as createFeishuPartialReplyDeliveryError, u as buildFeishuPresentationFallback, vt as canEnumerateAllFeishuGroups, w as shouldSuppressFeishuTextForVoiceMedia, xt as isFeishuGroupReadEnabled, y as resolveFeishuRichReply, yt as canEnumerateAllFeishuPeers } from "./reply-delivery-result-COAjaukc.mjs";
4
+ import { $ as cleanupAmbientCommentTypingReaction, A as sendMessageFeishu, At as resolveFeishuGroupToolPolicy, Ct as resolveFeishuChatReadPreliminaryAuthorization, Dt as resolveFeishuGroupConfig, G as deliverCommentThreadText, H as buildFeishuMediaFallbackText, M as toFeishuMessageSendResult, Mt as normalizeFeishuChatType, Nt as resolveFeishuChatType, S as sendMediaFeishu, St as readFeishuChatInfoWithAuthorization, T as chunkFeishuCardMarkdown, W as resolveFeishuIdentityHeaderTitle, _ as renderFeishuPresentationPayload, _t as authorizeFeishuChatMemberRead, b as withinCardTableLimit, bt as isFeishuGroupReadAllowed, c as buildFeishuPayloadCard, ct as parseFeishuCommentTarget, d as consumeFeishuPresentationFallbackMarker, dt as chunkFeishuMarkdown, f as feishuCardWithinTableLimit, ft as chunkFeishuPostMarkdown, g as renderFeishuPresentationFallbackText, gt as assertFeishuChatReadAllowed, h as readNativeFeishuCard, ht as shouldUseFeishuCard, j as sendStructuredCardFeishu, k as sendCardFeishu, l as buildFeishuPresentationCard, lt as readNativeFeishuCardJson, m as markRenderedFeishuCard, n as createFeishuReplyDeliveryResult, o as FEISHU_PRESENTATION_CAPABILITIES, p as isFeishuCardWithinEnvelope, pt as materializeFeishuPostMarkdownSoftBreaks, s as assertFeishuCardWithinEnvelope, t as createFeishuPartialReplyDeliveryError, u as buildFeishuPresentationFallback, vt as canEnumerateAllFeishuGroups, w as shouldSuppressFeishuTextForVoiceMedia, xt as isFeishuGroupReadEnabled, y as resolveFeishuRichReply, yt as canEnumerateAllFeishuPeers } from "./reply-delivery-result-DvHwvZCt.mjs";
5
5
  import { t as messageActionTargetAliases } from "./message-action-contract-Bhxj8Zrf.mjs";
6
6
  import { l as withFeishuRequestContext, r as createFeishuClient, u as withFeishuSendContext } from "./client-BYG-_IZl.mjs";
7
7
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-CI1wCr9i.mjs";
@@ -879,7 +879,7 @@ const feishuDoctor = {
879
879
  //#endregion
880
880
  //#region extensions/feishu/src/gateway.ts
881
881
  const feishuGatewayAdapter = { startAccount: async (ctx) => {
882
- const { monitorFeishuProvider } = await import("./monitor-D_rsHBZ6.mjs");
882
+ const { monitorFeishuProvider } = await import("./monitor-DyUUHVHy.mjs");
883
883
  const account = resolveFeishuRuntimeAccount({
884
884
  cfg: ctx.cfg,
885
885
  accountId: ctx.accountId
@@ -1961,7 +1961,7 @@ const meta = {
1961
1961
  order: 70,
1962
1962
  preferSessionLookupForAnnounceTarget: true
1963
1963
  };
1964
- const loadFeishuChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-CXQcH5zZ.mjs"), "feishuChannelRuntime");
1964
+ const loadFeishuChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-BHF5LhwF.mjs"), "feishuChannelRuntime");
1965
1965
  async function resolveFeishuMessageSender(params) {
1966
1966
  try {
1967
1967
  const sender = params.resolve(await loadFeishuChannelRuntime());
@@ -1,8 +1,8 @@
1
1
  import { s as resolveFeishuAccount } from "./accounts-wRqItHug.mjs";
2
- import { d as listFeishuDirectoryPeers, o as feishuOutbound, u as listFeishuDirectoryGroups } from "./channel-DV4hM2Uf.mjs";
3
- import { A as sendMessageFeishu, C as sendStickerFeishu, D as getMessageFeishu, E as editMessageFeishu, Q as assertFeishuApiSuccess, V as createConfiguredFeishuClient, k as sendCardFeishu } from "./reply-delivery-result-COAjaukc.mjs";
2
+ import { d as listFeishuDirectoryPeers, o as feishuOutbound, u as listFeishuDirectoryGroups } from "./channel-DtxcN3Fx.mjs";
3
+ import { A as sendMessageFeishu, C as sendStickerFeishu, D as getMessageFeishu, E as editMessageFeishu, Q as assertFeishuApiSuccess, V as createConfiguredFeishuClient, k as sendCardFeishu } from "./reply-delivery-result-DvHwvZCt.mjs";
4
4
  import { r as createFeishuClient } from "./client-BYG-_IZl.mjs";
5
- import { a as getFeishuMemberInfo, i as getChatMembers, n as buildFeishuDirectChatMembers, r as getChatInfo, t as assertFeishuChatMember } from "./chat-D8MlFAZi.mjs";
5
+ import { a as getFeishuMemberInfo, i as getChatMembers, n as buildFeishuDirectChatMembers, r as getChatInfo, t as assertFeishuChatMember } from "./chat-Cjr4bdPV.mjs";
6
6
  import { t as probeFeishu } from "./probe-_ViqSi0j.mjs";
7
7
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  //#region extensions/feishu/src/directory.ts
@@ -1,4 +1,4 @@
1
- import { Ct as resolveFeishuChatReadPreliminaryAuthorization, J as feishuExternalToolResult, Nt as resolveFeishuChatType, Q as assertFeishuApiSuccess, St as readFeishuChatInfoWithAuthorization, Z as resolveFeishuToolAccount, _t as authorizeFeishuChatMemberRead, gt as assertFeishuChatReadAllowed, q as registerFeishuTool, rt as formatFeishuApiError } from "./reply-delivery-result-COAjaukc.mjs";
1
+ import { Ct as resolveFeishuChatReadPreliminaryAuthorization, J as feishuExternalToolResult, Nt as resolveFeishuChatType, Q as assertFeishuApiSuccess, St as readFeishuChatInfoWithAuthorization, Z as resolveFeishuToolAccount, _t as authorizeFeishuChatMemberRead, gt as assertFeishuChatReadAllowed, q as registerFeishuTool, rt as formatFeishuApiError } from "./reply-delivery-result-DvHwvZCt.mjs";
2
2
  import { r as createFeishuClient } from "./client-BYG-_IZl.mjs";
3
3
  import { optionalPositiveIntegerSchema } from "openclaw/plugin-sdk/channel-actions";
4
4
  import { readPositiveIntegerParam } from "openclaw/plugin-sdk/param-readers";
@@ -144,7 +144,7 @@ async function fetchBotIdentityForMonitor(account, options = {}) {
144
144
  }
145
145
  //#endregion
146
146
  //#region extensions/feishu/src/monitor.ts
147
- const loadMonitorAccountRuntime = createLazyRuntimeModule(() => import("./monitor.account-DvvY7i6k.mjs"));
147
+ const loadMonitorAccountRuntime = createLazyRuntimeModule(() => import("./monitor.account-DuKFCzmA.mjs"));
148
148
  async function monitorFeishuProvider(opts = {}) {
149
149
  const cfg = opts.config;
150
150
  if (!cfg) throw new Error("Config is required for Feishu monitor");
@@ -1,16 +1,16 @@
1
1
  import { a as normalizeFeishuWebhookPath, o as normalizeFeishuExternalKey } from "./doctor-contract-3XC0vbIw.mjs";
2
2
  import { c as resolveFeishuRuntimeAccount, s as resolveFeishuAccount } from "./accounts-wRqItHug.mjs";
3
3
  import { o as resolveConfiguredFeishuGroupSessionScope, t as buildFeishuConversationId, u as resolveReceiveIdType } from "./conversation-id-C1ofUfU8.mjs";
4
- import { c as resolveFeishuLegacyWebhookListener, l as gateway_config_runtime_exports, s as describeFeishuWebhookPathConflict } from "./channel-DV4hM2Uf.mjs";
5
- import { A as sendMessageFeishu, B as parsePostContent, D as getMessageFeishu, Dt as resolveFeishuGroupConfig, Et as resolveFeishuDmIngressAccess, F as isFeishuBroadcastMention, Ft as buildFeishuCardActionTextFallback, G as deliverCommentThreadText, H as buildFeishuMediaFallbackText, I as isMentionForwardRequest, It as createFeishuCardInteractionEnvelope, L as isFeishuGroupChatType, Lt as decodeFeishuCardAction, Mt as normalizeFeishuChatType, N as formatFeishuMediaContent, Nt as resolveFeishuChatType, O as listFeishuThreadMessages, Ot as resolveFeishuGroupConversationIngressAccess, P as extractMentionTargets, R as normalizeFeishuEventChatType, S as sendMediaFeishu, T as chunkFeishuCardMarkdown, Tt as normalizeFeishuAllowEntry, U as resolveFeishuIdentityEmoji, a as shouldSendNoVisibleReplyFallback, at as requestFeishuApi, b as withinCardTableLimit, d as consumeFeishuPresentationFallbackMarker, et as createCommentTypingReactionLifecycle, ft as chunkFeishuPostMarkdown, ht as shouldUseFeishuCard, i as noVisibleFeishuReplyDelivery, it as parseCommentContentElements, j as sendStructuredCardFeishu, jt as resolveFeishuReplyPolicy, k as sendCardFeishu, kt as resolveFeishuGroupSenderActivationIngressAccess, n as createFeishuReplyDeliveryResult, nt as extractReplyText, ot as buildFeishuCommentTarget, pt as materializeFeishuPostMarkdownSoftBreaks, r as mergeFeishuReplyDeliveryResults, st as normalizeCommentFileType, t as createFeishuPartialReplyDeliveryError, tt as encodeQuery, u as buildFeishuPresentationFallback, ut as resolveFeishuCardTemplate, v as renderFeishuReplyPayload, w as shouldSuppressFeishuTextForVoiceMedia, wt as hasExplicitFeishuGroupConfig, x as saveMessageResourceFeishu, y as resolveFeishuRichReply, z as parseInteractiveCardContent } from "./reply-delivery-result-COAjaukc.mjs";
4
+ import { c as resolveFeishuLegacyWebhookListener, l as gateway_config_runtime_exports, s as describeFeishuWebhookPathConflict } from "./channel-DtxcN3Fx.mjs";
5
+ import { A as sendMessageFeishu, B as parsePostContent, D as getMessageFeishu, Dt as resolveFeishuGroupConfig, Et as resolveFeishuDmIngressAccess, F as isFeishuBroadcastMention, Ft as buildFeishuCardActionTextFallback, G as deliverCommentThreadText, H as buildFeishuMediaFallbackText, I as isMentionForwardRequest, It as createFeishuCardInteractionEnvelope, L as isFeishuGroupChatType, Lt as decodeFeishuCardAction, Mt as normalizeFeishuChatType, N as formatFeishuMediaContent, Nt as resolveFeishuChatType, O as listFeishuThreadMessages, Ot as resolveFeishuGroupConversationIngressAccess, P as extractMentionTargets, R as normalizeFeishuEventChatType, S as sendMediaFeishu, T as chunkFeishuCardMarkdown, Tt as normalizeFeishuAllowEntry, U as resolveFeishuIdentityEmoji, a as shouldSendNoVisibleReplyFallback, at as requestFeishuApi, b as withinCardTableLimit, d as consumeFeishuPresentationFallbackMarker, et as createCommentTypingReactionLifecycle, ft as chunkFeishuPostMarkdown, ht as shouldUseFeishuCard, i as noVisibleFeishuReplyDelivery, it as parseCommentContentElements, j as sendStructuredCardFeishu, jt as resolveFeishuReplyPolicy, k as sendCardFeishu, kt as resolveFeishuGroupSenderActivationIngressAccess, n as createFeishuReplyDeliveryResult, nt as extractReplyText, ot as buildFeishuCommentTarget, pt as materializeFeishuPostMarkdownSoftBreaks, r as mergeFeishuReplyDeliveryResults, st as normalizeCommentFileType, t as createFeishuPartialReplyDeliveryError, tt as encodeQuery, u as buildFeishuPresentationFallback, ut as resolveFeishuCardTemplate, v as renderFeishuReplyPayload, w as shouldSuppressFeishuTextForVoiceMedia, wt as hasExplicitFeishuGroupConfig, x as saveMessageResourceFeishu, y as resolveFeishuRichReply, z as parseInteractiveCardContent } from "./reply-delivery-result-DvHwvZCt.mjs";
6
6
  import { t as getFeishuRuntime } from "./runtime-C5JxBWZp.mjs";
7
7
  import { a as getFeishuUserAgent, f as resolveConfiguredHttpTimeoutMs, i as createFeishuWSClient, n as createEventDispatcher, r as createFeishuClient } from "./client-BYG-_IZl.mjs";
8
- import { r as getChatInfo } from "./chat-D8MlFAZi.mjs";
8
+ import { r as getChatInfo } from "./chat-Cjr4bdPV.mjs";
9
9
  import { t as createFeishuThreadBindingManager } from "./thread-bindings-EdLXPXzw.mjs";
10
10
  import { evaluateSupplementalContextVisibility, normalizeAgentId as normalizeAgentId$1, resolveChannelContextVisibilityMode } from "../runtime-api.js";
11
11
  import { t as readFeishuJsonResponse } from "./json-response-DXajw_FU.mjs";
12
12
  import { a as waitForAbortableDelay, i as raceWithTimeoutAndAbort } from "./probe-_ViqSi0j.mjs";
13
- import { t as fetchBotIdentityForMonitor } from "./monitor-D_rsHBZ6.mjs";
13
+ import { t as fetchBotIdentityForMonitor } from "./monitor-DyUUHVHy.mjs";
14
14
  import { resolveAgentConfig } from "openclaw/plugin-sdk/agent-scope-runtime";
15
15
  import { DEFAULT_INGRESS_ADOPTION_STALL_MS, bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, createChannelMessageReplyPipeline, createReplyPrefixContext, formatChannelProgressDraftLineForEntry, resolveAgentOutboundIdentity, resolveChannelPreviewStreamMode, resolveChannelStreamingBlockEnabled, waitUntilAbort } from "openclaw/plugin-sdk/channel-outbound";
16
16
  import { createChannelPairingController } from "openclaw/plugin-sdk/channel-pairing";
@@ -423,6 +423,10 @@ function resolveFeishuMediaKind(messageType) {
423
423
  default: return "document";
424
424
  }
425
425
  }
426
+ function resolvePostAttachmentMediaKind(attachment) {
427
+ if (attachment.kind === "image") return "image";
428
+ return attachment.origin === "top-level" ? "document" : "video";
429
+ }
426
430
  async function resolveFeishuMediaList(params) {
427
431
  const { cfg, messageId, messageType, content, maxBytes, log, accountId } = params;
428
432
  if (![
@@ -447,7 +451,7 @@ async function resolveFeishuMediaList(params) {
447
451
  key: attachment.key,
448
452
  type: attachment.kind,
449
453
  fileName: attachment.kind === "file" ? attachment.fileName : void 0,
450
- kind: attachment.kind === "image" ? "image" : "video",
454
+ kind: resolvePostAttachmentMediaKind(attachment),
451
455
  label: `embedded ${attachment.kind} ${attachment.key}`
452
456
  });
453
457
  }
@@ -897,7 +901,7 @@ function parseContentRecord(content) {
897
901
  }
898
902
  }
899
903
  function resolvePostMediaParts(content) {
900
- const { attachments } = parsePostContent(content);
904
+ const { attachments } = parsePostContent(content, { includeTopLevelFiles: false });
901
905
  return ["image", "file"].flatMap((kind) => attachments.filter((attachment) => attachment.kind === kind).map((attachment) => `${kind}_key:${attachment.key}`));
902
906
  }
903
907
  function resolveMessageMediaParts(messageType, content) {
@@ -5813,7 +5817,7 @@ function createFeishuMessageReceiveHandler({ cfg, channelRuntime, accountId, run
5813
5817
  return;
5814
5818
  }
5815
5819
  const messageDedupeKey = resolveFeishuMessageDedupeKey(event);
5816
- if (event.message.message_type.trim() === "post" && messageDedupeKey !== messageId && await hasProcessedMessage(messageId, accountId, log) && parsePostContent(event.message.content).attachments.length === 0) {
5820
+ if (event.message.message_type.trim() === "post" && messageDedupeKey !== messageId && await hasProcessedMessage(messageId, accountId, log) && parsePostContent(event.message.content, { includeTopLevelFiles: false }).attachments.length === 0) {
5817
5821
  log(`feishu[${accountId}]: dropping duplicate event for message ${messageId}`);
5818
5822
  await completeSuppressedIngress();
5819
5823
  return;
@@ -1952,11 +1952,29 @@ function renderElement(element, attachments, mentionedOpenIds, renderMediaPlaceh
1952
1952
  default: return escapeMarkdownText(toStringOrEmpty(element.text));
1953
1953
  }
1954
1954
  }
1955
+ function appendTopLevelPostFiles(attachments, files) {
1956
+ if (!Array.isArray(files)) return;
1957
+ const seenFileKeys = new Set(attachments.filter((attachment) => attachment.kind === "file").map((attachment) => attachment.key));
1958
+ for (const entry of files) {
1959
+ if (!isRecord(entry) || entry.is_folder === true) continue;
1960
+ const fileKey = normalizeFeishuExternalKey(toStringOrEmpty(entry.file_key));
1961
+ if (!fileKey || seenFileKeys.has(fileKey)) continue;
1962
+ seenFileKeys.add(fileKey);
1963
+ const fileName = toStringOrEmpty(entry.file_name) || void 0;
1964
+ attachments.push({
1965
+ kind: "file",
1966
+ key: fileKey,
1967
+ origin: "top-level",
1968
+ ...fileName ? { fileName } : {}
1969
+ });
1970
+ }
1971
+ }
1955
1972
  function toPostPayload(candidate) {
1956
1973
  if (!isRecord(candidate) || !Array.isArray(candidate.content)) return null;
1957
1974
  return {
1958
1975
  title: toStringOrEmpty(candidate.title),
1959
- content: candidate.content
1976
+ content: candidate.content,
1977
+ ...Array.isArray(candidate.files) ? { files: candidate.files } : {}
1960
1978
  };
1961
1979
  }
1962
1980
  function resolveLocalePayload(candidate) {
@@ -2005,6 +2023,10 @@ function renderPostContent(parsed, options = {}) {
2005
2023
  for (const element of paragraph) renderedParagraph += renderElement(element, attachments, mentionedOpenIds, options.renderMediaPlaceholders !== false);
2006
2024
  paragraphs.push(renderedParagraph);
2007
2025
  }
2026
+ if (options.includeTopLevelFiles !== false) {
2027
+ appendTopLevelPostFiles(attachments, payload.files);
2028
+ if (isRecord(parsed)) appendTopLevelPostFiles(attachments, parsed.files);
2029
+ }
2008
2030
  return {
2009
2031
  textContent: [escapeMarkdownText(payload.title.trim()), paragraphs.join("\n").trim()].filter(Boolean).join("\n\n").trim() || (options.emptyTextFallback ?? FALLBACK_POST_TEXT),
2010
2032
  attachments,
@@ -1,3 +1,3 @@
1
- import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./channel-DV4hM2Uf.mjs";
1
+ import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./channel-DtxcN3Fx.mjs";
2
2
  import "../setup-api.js";
3
3
  export { feishuPlugin, feishuSetupAdapter, feishuSetupWizard };
package/dist/api.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { a as parseFeishuTargetId, i as parseFeishuDirectConversationId, n as buildFeishuModelOverrideParentCandidates, r as parseFeishuConversationId, t as buildFeishuConversationId } from "./.setup/conversation-id-C1ofUfU8.mjs";
2
- import { a as setFeishuNamedAccountEnabled, i as feishuSetupAdapter, n as feishuSetupWizard, r as runFeishuLogin, t as feishuPlugin } from "./.setup/channel-DV4hM2Uf.mjs";
3
- import { J as feishuExternalToolResult, K as registerFeishuDriveTools, Q as assertFeishuApiSuccess, X as createFeishuToolClient, Y as unknownToolActionResult, Z as resolveFeishuToolAccount, dt as chunkFeishuMarkdown, mt as parseFeishuMarkdown, q as registerFeishuTool } from "./.setup/reply-delivery-result-COAjaukc.mjs";
2
+ import { a as setFeishuNamedAccountEnabled, i as feishuSetupAdapter, n as feishuSetupWizard, r as runFeishuLogin, t as feishuPlugin } from "./.setup/channel-DtxcN3Fx.mjs";
3
+ import { J as feishuExternalToolResult, K as registerFeishuDriveTools, Q as assertFeishuApiSuccess, X as createFeishuToolClient, Y as unknownToolActionResult, Z as resolveFeishuToolAccount, dt as chunkFeishuMarkdown, mt as parseFeishuMarkdown, q as registerFeishuTool } from "./.setup/reply-delivery-result-DvHwvZCt.mjs";
4
4
  import { t as getFeishuRuntime } from "./.setup/runtime-C5JxBWZp.mjs";
5
5
  import { f as resolveConfiguredHttpTimeoutMs, r as createFeishuClient } from "./.setup/client-BYG-_IZl.mjs";
6
- import { o as registerFeishuChatTools } from "./.setup/chat-D8MlFAZi.mjs";
6
+ import { o as registerFeishuChatTools } from "./.setup/chat-Cjr4bdPV.mjs";
7
7
  import { n as getFeishuThreadBindingManager, t as createFeishuThreadBindingManager } from "./.setup/thread-bindings-EdLXPXzw.mjs";
8
8
  import { n as handleFeishuSubagentEnded, t as handleFeishuSubagentDeliveryTarget } from "./.setup/subagent-hooks-BaFoMu8W.mjs";
9
9
  import { optionalPositiveIntegerSchema } from "openclaw/plugin-sdk/channel-actions";
@@ -1,2 +1,2 @@
1
- import { t as feishuPlugin } from "./.setup/channel-DV4hM2Uf.mjs";
1
+ import { t as feishuPlugin } from "./.setup/channel-DtxcN3Fx.mjs";
2
2
  export { feishuPlugin };
package/dist/setup-api.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./.setup/channel-DV4hM2Uf.mjs";
1
+ import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./.setup/channel-DtxcN3Fx.mjs";
2
2
  export { feishuPlugin, feishuSetupAdapter, feishuSetupWizard };
@@ -4,7 +4,7 @@ import { fileURLToPath } from "node:url";
4
4
  var setup_entry_default = defineBundledChannelSetupEntry({
5
5
  importMetaUrl: import.meta.url,
6
6
  plugin: {
7
- specifier: fileURLToPath(new URL(".setup/setup-api-C4S5I3ac.mjs", import.meta.url).href),
7
+ specifier: fileURLToPath(new URL(".setup/setup-api-CuzYzoyE.mjs", import.meta.url).href),
8
8
  exportName: "feishuPlugin"
9
9
  },
10
10
  secrets: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/feishu",
3
- "version": "2026.9.8",
3
+ "version": "2026.9.9",
4
4
  "description": "OpenClaw Feishu/Lark channel plugin for chats and workplace tools (community maintained by @m1heng).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "zod": "4.6.5"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.9.8"
20
+ "openclaw": ">=2026.9.9"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
@@ -64,11 +64,11 @@
64
64
  "minHostVersion": ">=2026.5.29"
65
65
  },
66
66
  "compat": {
67
- "pluginApi": ">=2026.9.8"
67
+ "pluginApi": ">=2026.9.9"
68
68
  },
69
69
  "build": {
70
70
  "bundledDist": false,
71
- "openclawVersion": "2026.9.8"
71
+ "openclawVersion": "2026.9.9"
72
72
  },
73
73
  "release": {
74
74
  "publishToClawHub": true,