@xwang152/claw-lark 0.1.21 → 0.1.23

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/index.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
9
9
  export { larkPlugin } from "./src/channel.js";
10
+ export { larkProviderPlugin } from "./src/provider.js";
10
11
  export { createLarkClient, createLarkWSClient } from "./src/client.js";
11
12
  export { monitorLarkProvider, stopMonitor } from "./src/monitor.js";
12
13
  export { startWebhookServer } from "./src/webhook.js";
package/dist/index.js CHANGED
@@ -7,9 +7,11 @@
7
7
  */
8
8
  import { emptyPluginConfigSchema } from "openclaw/plugin-sdk";
9
9
  import { larkPlugin } from "./src/channel.js";
10
+ import { larkProviderPlugin } from "./src/provider.js";
10
11
  import { setLarkRuntime } from "./src/runtime.js";
11
12
  // Re-export for programmatic usage
12
13
  export { larkPlugin } from "./src/channel.js";
14
+ export { larkProviderPlugin } from "./src/provider.js";
13
15
  export { createLarkClient, createLarkWSClient } from "./src/client.js";
14
16
  export { monitorLarkProvider, stopMonitor } from "./src/monitor.js";
15
17
  export { startWebhookServer } from "./src/webhook.js";
@@ -20,11 +22,13 @@ export { extractMentionTargets, extractMessageBody, isMentionForwardRequest, for
20
22
  const plugin = {
21
23
  id: "claw-lark",
22
24
  name: "Lark",
23
- description: "Lark / Feishu channel plugin for OpenClaw",
25
+ description: "Lark / Feishu provider plugin for OpenClaw",
24
26
  configSchema: emptyPluginConfigSchema(),
25
27
  register(api) {
26
28
  setLarkRuntime(api);
29
+ // Register as both channel and provider
27
30
  api.registerChannel({ plugin: larkPlugin });
31
+ api.registerProvider(larkProviderPlugin);
28
32
  },
29
33
  };
30
34
  export default plugin;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAY1B,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2CAA2C;IACxD,YAAY,EAAE,uBAAuB,EAAE;IACvC,QAAQ,CAAC,GAAsB;QAC7B,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAY1B,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,4CAA4C;IACzD,YAAY,EAAE,uBAAuB,EAAE;IACvC,QAAQ,CAAC,GAAsB;QAC7B,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,wCAAwC;QACxC,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -10,6 +10,25 @@ import { startWebhookServer } from "./webhook.js";
10
10
  // Active connections for cleanup
11
11
  let activeWsClient = null;
12
12
  let activeWebhookServer = null;
13
+ /**
14
+ * Determine receive_id_type from recipient ID format.
15
+ * IDs starting with "oc_" are chat IDs,
16
+ * IDs starting with "ou_" are open IDs (user),
17
+ * IDs starting with "on_" are union IDs (user).
18
+ */
19
+ function inferReceiveIdType(recipientId) {
20
+ if (recipientId.startsWith("oc_")) {
21
+ return "chat_id";
22
+ }
23
+ if (recipientId.startsWith("ou_")) {
24
+ return "open_id";
25
+ }
26
+ if (recipientId.startsWith("on_")) {
27
+ return "union_id";
28
+ }
29
+ // Default to open_id for other formats
30
+ return "open_id";
31
+ }
13
32
  /**
14
33
  * Extract plain text from Lark message content.
15
34
  * Handles different message types (text, post/rich-text).
@@ -105,41 +124,121 @@ export async function routeMessage(event, account) {
105
124
  return;
106
125
  }
107
126
  api.logger.info(`[feishu] Received message from ${parsed.senderId} in ${parsed.chatType} ${parsed.chatId}`);
108
- // Add "typing" indicator (reaction)
127
+ // Route message to OpenClaw's message dispatcher
128
+ // Use the runtime's channel.reply API if available
129
+ const runtime = api.runtime;
130
+ if (runtime?.channel?.reply?.dispatchReplyWithBufferedBlockDispatcher) {
131
+ try {
132
+ // Build the inbound context
133
+ const isDirect = parsed.chatType === "p2p";
134
+ const isGroup = parsed.chatType === "group";
135
+ // Use OpenClaw's routing system
136
+ const resolveAgentRoute = runtime.channel.routing.resolveAgentRoute;
137
+ if (resolveAgentRoute) {
138
+ const route = resolveAgentRoute({
139
+ cfg: api.config,
140
+ channel: "lark",
141
+ accountId: account.accountId,
142
+ peer: {
143
+ kind: isDirect ? "dm" : "group",
144
+ id: parsed.chatId,
145
+ },
146
+ });
147
+ // Build the inbound context
148
+ const ctx = {
149
+ From: parsed.senderId,
150
+ To: `lark:${parsed.chatId}`,
151
+ Body: parsed.text,
152
+ ChatType: isDirect ? "dm" : "group",
153
+ MessageSid: parsed.messageId,
154
+ ReplyToId: parsed.threadId,
155
+ MediaUrls: parsed.media?.map(m => m.id),
156
+ Timestamp: new Date(parsed.timestamp * 1000).toISOString(),
157
+ // Lark-specific fields
158
+ Provider: "lark",
159
+ AccountId: account.accountId,
160
+ MessageId: parsed.messageId,
161
+ ChatId: parsed.chatId,
162
+ SenderId: parsed.senderId,
163
+ ThreadId: parsed.threadId,
164
+ Mentions: parsed.mentions,
165
+ };
166
+ // Dispatch the message
167
+ await runtime.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
168
+ ctx,
169
+ cfg: api.config,
170
+ dispatcherOptions: {
171
+ deliver: async (payload) => {
172
+ // Send reply to Lark
173
+ try {
174
+ const client = createLarkClient(account);
175
+ const text = payload.text || "";
176
+ const mediaUrls = payload.mediaUrls || [];
177
+ const replyToId = payload.replyToId || parsed.threadId;
178
+ // Send text message
179
+ if (text || mediaUrls.length > 0) {
180
+ let finalText = text;
181
+ // If there are media URLs, append them to the text
182
+ // Note: Lark requires media to be uploaded first, then sent with media_key
183
+ // For now, we'll just send the text
184
+ const response = await client.im.message.create({
185
+ params: {
186
+ receive_id_type: inferReceiveIdType(parsed.chatId),
187
+ },
188
+ data: {
189
+ receive_id: parsed.chatId,
190
+ msg_type: "text",
191
+ content: JSON.stringify({ text: finalText }),
192
+ ...(replyToId && { root_id: replyToId }),
193
+ // Reply to specific message if in thread
194
+ ...(parsed.threadId && { parent_id: parsed.messageId }),
195
+ },
196
+ });
197
+ if (response.code === 0) {
198
+ api.logger.info(`[feishu] Reply sent: message_id=${response.data?.message_id}`);
199
+ }
200
+ else {
201
+ api.logger.error(`[feishu] Failed to send reply: ${response.msg}`);
202
+ }
203
+ }
204
+ }
205
+ catch (err) {
206
+ api.logger.error(`[feishu] Error sending reply: ${err}`);
207
+ }
208
+ },
209
+ onError: (err) => {
210
+ api.logger.error(`[feishu] Reply error: ${err}`);
211
+ },
212
+ },
213
+ replyOptions: {},
214
+ });
215
+ api.logger.info(`[feishu] Message routed to agent ${route.agentId}`);
216
+ }
217
+ }
218
+ catch (error) {
219
+ api.logger.error(`[feishu] Failed to route message: ${error}`);
220
+ }
221
+ }
222
+ else {
223
+ api.logger.warn("[feishu] Runtime dispatcher not available, message not routed");
224
+ }
225
+ // Optional: Add a "received" reaction to indicate message was processed
226
+ // Using valid Lark emoji type: "THUMBSUP" (confirmed to work)
109
227
  const client = createLarkClient(account);
110
228
  try {
111
229
  await client.im.messageReaction.create({
112
230
  path: { message_id: parsed.messageId },
113
231
  data: {
114
232
  reaction_type: {
115
- emoji_type: "COMMUNICATING", // Use a valid Lark emoji type instead of "TYPING"
233
+ emoji_type: "THUMBSUP",
116
234
  },
117
235
  },
118
236
  });
119
237
  }
120
238
  catch (e) {
121
- // Ignore reaction errors
239
+ // Ignore reaction errors (e.g., message already deleted)
240
+ api.logger.debug(`[feishu] Reaction add failed: ${e}`);
122
241
  }
123
- // Use the top-level handleMessage or fallback to inbound.handleMessage
124
- const handleMessage = api.handleMessage || api.inbound?.handleMessage;
125
- if (typeof handleMessage !== "function") {
126
- api.logger.error("[feishu] No handleMessage function found in OpenClaw API");
127
- return;
128
- }
129
- await handleMessage({
130
- channel: "lark",
131
- accountId: account.accountId,
132
- messageId: parsed.messageId,
133
- chatId: parsed.chatId,
134
- chatType: parsed.chatType === "p2p" ? "direct" : "group",
135
- senderId: parsed.senderId,
136
- text: parsed.text,
137
- threadId: parsed.threadId,
138
- timestamp: parsed.timestamp,
139
- mentions: parsed.mentions,
140
- media: parsed.media,
141
- raw: event,
142
- });
143
242
  }
144
243
  /**
145
244
  * Start WebSocket connection and listen for messages.
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Lark Provider Plugin
3
+ *
4
+ * Implements the ProviderPlugin interface for Lark/Feishu integration.
5
+ * Provides message monitoring, processing, and sending capabilities.
6
+ */
7
+ import type { OpenClawConfig } from "openclaw/plugin-sdk";
8
+ import type { ResolvedLarkAccount, SendResult } from "./types.js";
9
+ /**
10
+ * List available users
11
+ */
12
+ declare function listPeers(account: ResolvedLarkAccount): Promise<Array<{
13
+ id: string;
14
+ name: string;
15
+ }>>;
16
+ /**
17
+ * List available chat groups
18
+ */
19
+ declare function listGroups(account: ResolvedLarkAccount): Promise<Array<{
20
+ id: string;
21
+ name: string;
22
+ }>>;
23
+ /**
24
+ * Lark/Feishu provider plugin implementation
25
+ */
26
+ export declare const larkProviderPlugin: {
27
+ id: string;
28
+ meta: {
29
+ label: string;
30
+ selectionLabel: string;
31
+ docsPath: string;
32
+ blurb: string;
33
+ order: number;
34
+ };
35
+ capabilities: {
36
+ chatTypes: string[];
37
+ reactions: boolean;
38
+ threads: boolean;
39
+ media: boolean;
40
+ nativeCommands: boolean;
41
+ blockStreaming: boolean;
42
+ };
43
+ config: {
44
+ listAccountIds(cfg: OpenClawConfig): string[];
45
+ resolveAccount(cfg: OpenClawConfig, accountId?: string): ResolvedLarkAccount | null;
46
+ isConfigured(account: ResolvedLarkAccount): boolean;
47
+ setAccountEnabled(cfg: OpenClawConfig, accountId: string, enabled: boolean): OpenClawConfig;
48
+ };
49
+ outbound: {
50
+ deliveryMode: string;
51
+ textChunkLimit: number;
52
+ chunkerMode: string;
53
+ sendText(args: {
54
+ account: ResolvedLarkAccount;
55
+ recipientId: string;
56
+ text: string;
57
+ threadId?: string;
58
+ }): Promise<SendResult>;
59
+ sendMedia(args: {
60
+ account: ResolvedLarkAccount;
61
+ recipientId: string;
62
+ mediaId: string;
63
+ mediaType: "image" | "file";
64
+ fileName?: string;
65
+ threadId?: string;
66
+ }): Promise<SendResult>;
67
+ downloadMedia(args: {
68
+ account: ResolvedLarkAccount;
69
+ mediaId: string;
70
+ mediaType: "image" | "file";
71
+ messageId?: string;
72
+ }): Promise<Buffer | null>;
73
+ addReaction(args: {
74
+ account: ResolvedLarkAccount;
75
+ messageId: string;
76
+ emoji: string;
77
+ }): Promise<void>;
78
+ removeReaction(args: {
79
+ account: ResolvedLarkAccount;
80
+ messageId: string;
81
+ emoji: string;
82
+ reactionId?: string;
83
+ }): Promise<void>;
84
+ listReactions(args: {
85
+ account: ResolvedLarkAccount;
86
+ messageId: string;
87
+ }): Promise<Array<{
88
+ emoji: string;
89
+ reactionId: string;
90
+ }>>;
91
+ };
92
+ directory: {
93
+ listPeers: typeof listPeers;
94
+ listGroups: typeof listGroups;
95
+ };
96
+ gateway: {
97
+ startAccount: (ctx: {
98
+ account: ResolvedLarkAccount;
99
+ cfg: OpenClawConfig;
100
+ runtime: any;
101
+ abortSignal?: AbortSignal;
102
+ log?: any;
103
+ }) => Promise<void>;
104
+ stopAccount: () => Promise<void>;
105
+ };
106
+ };
107
+ export {};
@@ -0,0 +1,350 @@
1
+ /**
2
+ * Lark Provider Plugin
3
+ *
4
+ * Implements the ProviderPlugin interface for Lark/Feishu integration.
5
+ * Provides message monitoring, processing, and sending capabilities.
6
+ */
7
+ import { createLarkClient } from "./client.js";
8
+ import { monitorLarkProvider, stopMonitor } from "./monitor.js";
9
+ import { listLarkDirectoryPeers, listLarkDirectoryGroups } from "./directory.js";
10
+ import { addReactionLark, removeReactionLark, listReactionsLark } from "./reactions.js";
11
+ import { downloadImageLark, downloadFileLark } from "./media.js";
12
+ // Default values for account configuration
13
+ const DEFAULTS = {
14
+ domain: "feishu",
15
+ connectionMode: "websocket",
16
+ webhookPort: 3000,
17
+ dmPolicy: "pairing",
18
+ groupPolicy: "open",
19
+ requireMention: true,
20
+ mediaMaxMb: 30,
21
+ renderMode: "auto",
22
+ historyLimit: 10,
23
+ };
24
+ /**
25
+ * Extract Feishu channel config from OpenClaw config
26
+ */
27
+ function getChannelConfig(cfg) {
28
+ return cfg.channels?.lark ?? {};
29
+ }
30
+ /**
31
+ * Get account config from channel config, with empty object fallback
32
+ */
33
+ function getAccountConfig(channelConfig, accountId) {
34
+ return channelConfig.accounts?.[accountId] ?? {};
35
+ }
36
+ /**
37
+ * Check if default account has env var credentials configured
38
+ */
39
+ function hasEnvCredentials() {
40
+ return Boolean(process.env.LARK_APP_ID && process.env.LARK_APP_SECRET);
41
+ }
42
+ /**
43
+ * Resolve account configuration with defaults and env fallbacks.
44
+ * For "default" account, environment variables take precedence.
45
+ */
46
+ function resolveAccount(cfg, accountId) {
47
+ const channelConfig = getChannelConfig(cfg);
48
+ const accountConfig = getAccountConfig(channelConfig, accountId);
49
+ // Resolve credentials - env vars as fallback for default account
50
+ const isDefault = accountId === "default";
51
+ const appId = accountConfig.appId ?? (isDefault ? process.env.LARK_APP_ID : undefined);
52
+ const appSecret = accountConfig.appSecret ?? (isDefault ? process.env.LARK_APP_SECRET : undefined);
53
+ const encryptKey = accountConfig.encryptKey ?? (isDefault ? process.env.LARK_ENCRYPT_KEY : undefined);
54
+ const verificationToken = accountConfig.verificationToken ?? (isDefault ? process.env.LARK_VERIFICATION_TOKEN : undefined);
55
+ const configured = Boolean(appId?.trim() && appSecret?.trim());
56
+ return {
57
+ accountId,
58
+ enabled: accountConfig.enabled ?? true,
59
+ configured,
60
+ appId: appId ?? "",
61
+ appSecret: appSecret ?? "",
62
+ encryptKey,
63
+ verificationToken,
64
+ domain: accountConfig.domain ?? DEFAULTS.domain,
65
+ connectionMode: accountConfig.connectionMode ?? DEFAULTS.connectionMode,
66
+ webhookPort: accountConfig.webhookPort ?? DEFAULTS.webhookPort,
67
+ dmPolicy: accountConfig.dmPolicy ?? DEFAULTS.dmPolicy,
68
+ dmAllowlist: accountConfig.dmAllowlist ?? [],
69
+ groupPolicy: accountConfig.groupPolicy ?? DEFAULTS.groupPolicy,
70
+ requireMention: accountConfig.requireMention ?? DEFAULTS.requireMention,
71
+ groupAllowlist: accountConfig.groupAllowlist ?? [],
72
+ mediaMaxMb: accountConfig.mediaMaxMb ?? DEFAULTS.mediaMaxMb,
73
+ renderMode: accountConfig.renderMode ?? DEFAULTS.renderMode,
74
+ historyLimit: accountConfig.historyLimit ?? DEFAULTS.historyLimit,
75
+ };
76
+ }
77
+ /**
78
+ * Determine receive_id_type from recipient ID format.
79
+ * IDs starting with "oc_" are chat IDs,
80
+ * IDs starting with "ou_" are open IDs (user),
81
+ * IDs starting with "on_" are union IDs (user).
82
+ */
83
+ function inferReceiveIdType(recipientId) {
84
+ if (recipientId.startsWith("oc_")) {
85
+ return "chat_id";
86
+ }
87
+ if (recipientId.startsWith("ou_")) {
88
+ return "open_id";
89
+ }
90
+ if (recipientId.startsWith("on_")) {
91
+ return "union_id";
92
+ }
93
+ // Default to open_id for other formats
94
+ return "open_id";
95
+ }
96
+ /**
97
+ * Send a message via Lark API, supporting text and interactive cards.
98
+ */
99
+ async function sendTextMessage(account, recipientId, text, threadId) {
100
+ try {
101
+ const client = createLarkClient(account);
102
+ const renderMode = account.renderMode;
103
+ // Determine if we should use a card
104
+ const useCard = renderMode === "card" ||
105
+ (renderMode === "auto" && (text.includes("```") || text.includes("| --- |") || text.includes("\n- ")));
106
+ let msgType;
107
+ let content;
108
+ if (useCard) {
109
+ msgType = "interactive";
110
+ // Simple Markdown card
111
+ content = JSON.stringify({
112
+ config: { wide_screen_mode: true },
113
+ header: {
114
+ template: "orange",
115
+ title: {
116
+ content: "OpenClaw Message",
117
+ tag: "plain_text",
118
+ },
119
+ },
120
+ elements: [
121
+ {
122
+ tag: "div",
123
+ text: {
124
+ tag: "lark_md",
125
+ content: text,
126
+ },
127
+ },
128
+ ],
129
+ });
130
+ }
131
+ else {
132
+ msgType = "text";
133
+ content = JSON.stringify({ text });
134
+ }
135
+ const response = await client.im.message.create({
136
+ params: {
137
+ receive_id_type: inferReceiveIdType(recipientId),
138
+ },
139
+ data: {
140
+ receive_id: recipientId,
141
+ msg_type: msgType,
142
+ content,
143
+ ...(threadId && { root_id: threadId }),
144
+ },
145
+ });
146
+ if (response.code === 0 && response.data) {
147
+ return { ok: true, messageId: response.data.message_id };
148
+ }
149
+ return { ok: false, error: response.msg ?? "Unknown error" };
150
+ }
151
+ catch (error) {
152
+ return {
153
+ ok: false,
154
+ error: error instanceof Error ? error.message : "Unknown error",
155
+ };
156
+ }
157
+ }
158
+ /**
159
+ * List available users
160
+ */
161
+ async function listPeers(account) {
162
+ const peers = await listLarkDirectoryPeers({ account });
163
+ return peers.map(p => ({
164
+ id: p.id,
165
+ name: p.name ?? "",
166
+ }));
167
+ }
168
+ /**
169
+ * List available chat groups
170
+ */
171
+ async function listGroups(account) {
172
+ const groups = await listLarkDirectoryGroups({ account });
173
+ return groups.map(g => ({
174
+ id: g.id,
175
+ name: g.name ?? "",
176
+ }));
177
+ }
178
+ /**
179
+ * Lark/Feishu provider plugin implementation
180
+ */
181
+ export const larkProviderPlugin = {
182
+ id: "lark",
183
+ meta: {
184
+ label: "Lark",
185
+ selectionLabel: "Feishu / Lark",
186
+ docsPath: "/providers/feishu",
187
+ blurb: "Chat with your OpenClaw bot on Feishu or Lark",
188
+ order: 75,
189
+ },
190
+ capabilities: {
191
+ chatTypes: ["direct", "group"],
192
+ reactions: true,
193
+ threads: true,
194
+ media: true,
195
+ nativeCommands: false,
196
+ blockStreaming: false,
197
+ },
198
+ config: {
199
+ listAccountIds(cfg) {
200
+ const channelConfig = getChannelConfig(cfg);
201
+ const accountIds = Object.keys(channelConfig.accounts ?? {});
202
+ // Include default account if env vars are configured
203
+ if (!accountIds.includes("default") && hasEnvCredentials()) {
204
+ accountIds.push("default");
205
+ }
206
+ return accountIds;
207
+ },
208
+ resolveAccount(cfg, accountId) {
209
+ return resolveAccount(cfg, accountId ?? "default");
210
+ },
211
+ isConfigured(account) {
212
+ return account.configured;
213
+ },
214
+ setAccountEnabled(cfg, accountId, enabled) {
215
+ const channelConfig = getChannelConfig(cfg);
216
+ return {
217
+ ...cfg,
218
+ channels: {
219
+ ...cfg.channels,
220
+ lark: {
221
+ ...channelConfig,
222
+ accounts: {
223
+ ...channelConfig.accounts,
224
+ [accountId]: {
225
+ ...channelConfig.accounts?.[accountId],
226
+ enabled,
227
+ },
228
+ },
229
+ },
230
+ },
231
+ };
232
+ },
233
+ },
234
+ outbound: {
235
+ deliveryMode: "direct",
236
+ textChunkLimit: 4000,
237
+ chunkerMode: "markdown",
238
+ async sendText(args) {
239
+ const { account, recipientId, text, threadId } = args;
240
+ return sendTextMessage(account, recipientId, text, threadId);
241
+ },
242
+ async sendMedia(args) {
243
+ const { account, recipientId, mediaId, mediaType, fileName, threadId } = args;
244
+ try {
245
+ const client = createLarkClient(account);
246
+ const response = await client.im.message.create({
247
+ params: {
248
+ receive_id_type: inferReceiveIdType(recipientId),
249
+ },
250
+ data: {
251
+ receive_id: recipientId,
252
+ msg_type: mediaType === "image" ? "image" : "file",
253
+ content: JSON.stringify(mediaType === "image" ? { image_key: mediaId } : { file_key: mediaId, file_name: fileName }),
254
+ ...(threadId && { root_id: threadId }),
255
+ },
256
+ });
257
+ if (response.code === 0 && response.data) {
258
+ return { ok: true, messageId: response.data.message_id };
259
+ }
260
+ return { ok: false, error: response.msg ?? "Unknown error" };
261
+ }
262
+ catch (error) {
263
+ return {
264
+ ok: false,
265
+ error: error instanceof Error ? error.message : "Unknown error",
266
+ };
267
+ }
268
+ },
269
+ async downloadMedia(args) {
270
+ const { account, mediaId, messageId, mediaType } = args;
271
+ try {
272
+ if (mediaType === "image") {
273
+ const result = await downloadImageLark({ account, imageKey: mediaId });
274
+ return result.buffer;
275
+ }
276
+ else {
277
+ // For files, we need messageId
278
+ if (!messageId)
279
+ return null;
280
+ const result = await downloadFileLark({
281
+ account,
282
+ messageId,
283
+ fileKey: mediaId,
284
+ type: mediaType
285
+ });
286
+ return result.buffer;
287
+ }
288
+ }
289
+ catch (error) {
290
+ console.error("[lark] Download media failed:", error);
291
+ return null;
292
+ }
293
+ },
294
+ async addReaction(args) {
295
+ await addReactionLark({
296
+ account: args.account,
297
+ messageId: args.messageId,
298
+ emojiType: args.emoji,
299
+ });
300
+ },
301
+ async removeReaction(args) {
302
+ // If reactionId is not provided, we need to find it first
303
+ let reactionId = args.reactionId;
304
+ if (!reactionId) {
305
+ const reactions = await listReactionsLark({
306
+ account: args.account,
307
+ messageId: args.messageId,
308
+ emojiType: args.emoji,
309
+ });
310
+ // Find reaction by this app (bot)
311
+ // We need to filter by operator_id being the app itself
312
+ // For now, just take the first match
313
+ const match = reactions.find(r => r.emojiType === args.emoji);
314
+ reactionId = match?.reactionId;
315
+ }
316
+ if (reactionId) {
317
+ await removeReactionLark({
318
+ account: args.account,
319
+ messageId: args.messageId,
320
+ reactionId,
321
+ });
322
+ }
323
+ },
324
+ async listReactions(args) {
325
+ const reactions = await listReactionsLark({
326
+ account: args.account,
327
+ messageId: args.messageId,
328
+ });
329
+ return reactions.map(r => ({
330
+ emoji: r.emojiType,
331
+ reactionId: r.reactionId,
332
+ }));
333
+ },
334
+ },
335
+ directory: {
336
+ listPeers,
337
+ listGroups,
338
+ },
339
+ gateway: {
340
+ startAccount: async (ctx) => {
341
+ const { account, cfg, runtime, abortSignal, log } = ctx;
342
+ log?.info?.(`[${account.accountId}] starting Lark provider`);
343
+ return monitorLarkProvider({ account, abortSignal });
344
+ },
345
+ stopAccount: async () => {
346
+ stopMonitor();
347
+ },
348
+ },
349
+ };
350
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xwang152/claw-lark",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "type": "module",
5
5
  "description": "Lark/Feishu channel plugin for OpenClaw with WebSocket and Webhook support",
6
6
  "license": "MIT",