@openclaw/feishu 2026.5.3-beta.2 → 2026.5.3

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.
package/dist/api.js CHANGED
@@ -2,7 +2,7 @@ import { a as parseFeishuTargetId, i as parseFeishuDirectConversationId, n as bu
2
2
  import { n as createFeishuThreadBindingManager, r as getFeishuThreadBindingManager, t as __testing } from "./thread-bindings-BmS6TLes.js";
3
3
  import { n as handleFeishuSubagentEnded, r as handleFeishuSubagentSpawning, t as handleFeishuSubagentDeliveryTarget } from "./subagent-hooks-C3UhPVLV.js";
4
4
  import { r as listEnabledFeishuAccounts } from "./accounts-Ba3-WP1z.js";
5
- import { a as setFeishuNamedAccountEnabled, i as feishuSetupAdapter, n as feishuSetupWizard, r as runFeishuLogin, t as feishuPlugin } from "./channel-CSD_Jt8I.js";
5
+ import { a as setFeishuNamedAccountEnabled, i as feishuSetupAdapter, n as feishuSetupWizard, r as runFeishuLogin, t as feishuPlugin } from "./channel-ZFssFmsW.js";
6
6
  import { t as getFeishuRuntime } from "./runtime-CG0DuRCy.js";
7
7
  import { a as jsonToolResult, d as registerFeishuChatTools, f as createFeishuToolClient, m as resolveFeishuToolAccount, n as registerFeishuDriveTools, o as toolExecutionErrorResult, p as resolveAnyEnabledFeishuToolsConfig, s as unknownToolActionResult } from "./drive-C5eJLJr7.js";
8
8
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/text-runtime";
@@ -110,6 +110,7 @@ const RenderModeSchema = z.enum([
110
110
  "card"
111
111
  ]).optional();
112
112
  const StreamingModeSchema = z.boolean().optional();
113
+ const BlockStreamingSchema = z.boolean().optional();
113
114
  const BlockStreamingCoalesceSchema = z.object({
114
115
  enabled: z.boolean().optional(),
115
116
  minDelayMs: z.number().int().positive().optional(),
@@ -214,6 +215,7 @@ const FeishuSharedConfigShape = {
214
215
  dms: z.record(z.string(), DmConfigSchema).optional(),
215
216
  textChunkLimit: z.number().int().positive().optional(),
216
217
  chunkMode: z.enum(["length", "newline"]).optional(),
218
+ blockStreaming: BlockStreamingSchema,
217
219
  blockStreamingCoalesce: BlockStreamingCoalesceSchema,
218
220
  mediaMaxMb: z.number().positive().optional(),
219
221
  httpTimeoutMs: z.number().int().positive().max(3e5).optional(),
@@ -1599,7 +1601,7 @@ const feishuPlugin = createChatChannelPlugin({
1599
1601
  })
1600
1602
  }),
1601
1603
  gateway: { startAccount: async (ctx) => {
1602
- const { monitorFeishuProvider } = await import("./monitor-CT189QfR.js");
1604
+ const { monitorFeishuProvider } = await import("./monitor-Bs0SoYzr.js");
1603
1605
  const account = resolveFeishuRuntimeAccount({
1604
1606
  cfg: ctx.cfg,
1605
1607
  accountId: ctx.accountId
@@ -1,2 +1,2 @@
1
- import { t as feishuPlugin } from "./channel-CSD_Jt8I.js";
1
+ import { t as feishuPlugin } from "./channel-ZFssFmsW.js";
2
2
  export { feishuPlugin };
@@ -3,7 +3,7 @@ import { l as fetchBotIdentityForMonitor } from "./monitor.state-DYM02ipp.js";
3
3
  //#region extensions/feishu/src/monitor.ts
4
4
  let monitorAccountRuntimePromise;
5
5
  async function loadMonitorAccountRuntime() {
6
- monitorAccountRuntimePromise ??= import("./monitor.account-dJV2jO8C.js");
6
+ monitorAccountRuntimePromise ??= import("./monitor.account-BJ8FoDGL.js");
7
7
  return await monitorAccountRuntimePromise;
8
8
  }
9
9
  async function monitorFeishuProvider(opts = {}) {
@@ -1241,6 +1241,7 @@ function createFeishuReplyDispatcher(params) {
1241
1241
  });
1242
1242
  const renderMode = account.config?.renderMode ?? "auto";
1243
1243
  const streamingEnabled = account.config?.streaming !== false && renderMode !== "raw";
1244
+ const coreBlockStreamingEnabled = account.config?.blockStreaming === true;
1244
1245
  const reasoningPreviewEnabled = streamingEnabled && params.allowReasoningPreview === true;
1245
1246
  let streaming = null;
1246
1247
  let streamText = "";
@@ -1440,7 +1441,7 @@ function createFeishuReplyDispatcher(params) {
1440
1441
  mediaUrl,
1441
1442
  ...payload.audioAsVoice === true ? { audioAsVoice: true } : {}
1442
1443
  }));
1443
- const useCard = hasText && (renderMode === "card" || renderMode === "auto" && shouldUseCard(text));
1444
+ const useCard = hasText && (renderMode === "card" || info?.kind === "block" && coreBlockStreamingEnabled && renderMode !== "raw" || renderMode === "auto" && shouldUseCard(text));
1444
1445
  const skipTextForDuplicateFinal = info?.kind === "final" && hasText && deliveredFinalTexts.has(text);
1445
1446
  const skipTextForClosedStreamingFinal = info?.kind === "final" && hasText && streamingClosedForReply && !streamingCloseErroredForReply && streamingEnabled && useCard;
1446
1447
  const shouldDeliverText = hasText && !hasVoiceMedia && !skipTextForDuplicateFinal && !skipTextForClosedStreamingFinal;
@@ -1529,7 +1530,7 @@ function createFeishuReplyDispatcher(params) {
1529
1530
  replyOptions: {
1530
1531
  ...replyOptions,
1531
1532
  onModelSelected: prefixContext.onModelSelected,
1532
- disableBlockStreaming: true,
1533
+ disableBlockStreaming: typeof account.config?.blockStreaming === "boolean" ? !account.config.blockStreaming : true,
1533
1534
  onPartialReply: streamingEnabled ? (payload) => {
1534
1535
  if (!payload.text) return;
1535
1536
  const cleaned = stripReasoningTagsFromText(payload.text, {
package/dist/setup-api.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./channel-CSD_Jt8I.js";
1
+ import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./channel-ZFssFmsW.js";
2
2
  export { feishuPlugin, feishuSetupAdapter, feishuSetupWizard };
@@ -286,6 +286,9 @@
286
286
  "streaming": {
287
287
  "type": "boolean"
288
288
  },
289
+ "blockStreaming": {
290
+ "type": "boolean"
291
+ },
289
292
  "replyInThread": {
290
293
  "type": "string",
291
294
  "enum": [
@@ -351,6 +354,9 @@
351
354
  "streaming": {
352
355
  "type": "boolean"
353
356
  },
357
+ "blockStreaming": {
358
+ "type": "boolean"
359
+ },
354
360
  "replyInThread": {
355
361
  "type": "string",
356
362
  "enum": [
@@ -872,6 +878,9 @@
872
878
  "newline"
873
879
  ]
874
880
  },
881
+ "blockStreaming": {
882
+ "type": "boolean"
883
+ },
875
884
  "blockStreamingCoalesce": {
876
885
  "type": "object",
877
886
  "properties": {
@@ -1602,6 +1611,9 @@
1602
1611
  "newline"
1603
1612
  ]
1604
1613
  },
1614
+ "blockStreaming": {
1615
+ "type": "boolean"
1616
+ },
1605
1617
  "blockStreamingCoalesce": {
1606
1618
  "type": "object",
1607
1619
  "properties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/feishu",
3
- "version": "2026.5.3-beta.2",
3
+ "version": "2026.5.3",
4
4
  "description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,7 +16,7 @@
16
16
  "openclaw": "workspace:*"
17
17
  },
18
18
  "peerDependencies": {
19
- "openclaw": ">=2026.5.3-beta.2"
19
+ "openclaw": ">=2026.5.3"
20
20
  },
21
21
  "peerDependenciesMeta": {
22
22
  "openclaw": {
@@ -47,10 +47,10 @@
47
47
  "minHostVersion": ">=2026.4.25"
48
48
  },
49
49
  "compat": {
50
- "pluginApi": ">=2026.5.3-beta.2"
50
+ "pluginApi": ">=2026.5.3"
51
51
  },
52
52
  "build": {
53
- "openclawVersion": "2026.5.3-beta.2"
53
+ "openclawVersion": "2026.5.3"
54
54
  },
55
55
  "release": {
56
56
  "publishToClawHub": true,