@openclaw/feishu 2026.3.7 → 2026.3.10

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/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/feishu",
3
- "version": "2026.3.7",
3
+ "version": "2026.3.10",
4
4
  "description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@larksuiteoapi/node-sdk": "^1.59.0",
8
8
  "@sinclair/typebox": "0.34.48",
9
- "https-proxy-agent": "^7.0.6",
9
+ "https-proxy-agent": "^8.0.0",
10
10
  "zod": "^4.3.6"
11
11
  },
12
12
  "openclaw": {
@@ -52,6 +52,7 @@ describe("feishuOutbound.sendText local-image auto-convert", () => {
52
52
  to: "chat_1",
53
53
  text: file,
54
54
  accountId: "main",
55
+ mediaLocalRoots: [dir],
55
56
  });
56
57
 
57
58
  expect(sendMediaFeishuMock).toHaveBeenCalledWith(
@@ -59,6 +60,7 @@ describe("feishuOutbound.sendText local-image auto-convert", () => {
59
60
  to: "chat_1",
60
61
  mediaUrl: file,
61
62
  accountId: "main",
63
+ mediaLocalRoots: [dir],
62
64
  }),
63
65
  );
64
66
  expect(sendMessageFeishuMock).not.toHaveBeenCalled();
package/src/outbound.ts CHANGED
@@ -81,7 +81,7 @@ export const feishuOutbound: ChannelOutboundAdapter = {
81
81
  chunker: (text, limit) => getFeishuRuntime().channel.text.chunkMarkdownText(text, limit),
82
82
  chunkerMode: "markdown",
83
83
  textChunkLimit: 4000,
84
- sendText: async ({ cfg, to, text, accountId, replyToId, threadId }) => {
84
+ sendText: async ({ cfg, to, text, accountId, replyToId, threadId, mediaLocalRoots }) => {
85
85
  const replyToMessageId = resolveReplyToMessageId({ replyToId, threadId });
86
86
  // Scheme A compatibility shim:
87
87
  // when upstream accidentally returns a local image path as plain text,
@@ -95,6 +95,7 @@ export const feishuOutbound: ChannelOutboundAdapter = {
95
95
  mediaUrl: localImagePath,
96
96
  accountId: accountId ?? undefined,
97
97
  replyToMessageId,
98
+ mediaLocalRoots,
98
99
  });
99
100
  return { channel: "feishu", ...result };
100
101
  } catch (err) {
package/src/runtime.ts CHANGED
@@ -1,14 +1,6 @@
1
+ import { createPluginRuntimeStore } from "openclaw/plugin-sdk/compat";
1
2
  import type { PluginRuntime } from "openclaw/plugin-sdk/feishu";
2
3
 
3
- let runtime: PluginRuntime | null = null;
4
-
5
- export function setFeishuRuntime(next: PluginRuntime) {
6
- runtime = next;
7
- }
8
-
9
- export function getFeishuRuntime(): PluginRuntime {
10
- if (!runtime) {
11
- throw new Error("Feishu runtime not initialized");
12
- }
13
- return runtime;
14
- }
4
+ const { setRuntime: setFeishuRuntime, getRuntime: getFeishuRuntime } =
5
+ createPluginRuntimeStore<PluginRuntime>("Feishu runtime not initialized");
6
+ export { getFeishuRuntime, setFeishuRuntime };