@xwang152/claw-lark 0.1.29 → 0.1.31
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/README.md +74 -3
- package/README_zh.md +45 -5
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/channel.js +4 -21
- package/dist/src/channel.js.map +1 -1
- package/dist/src/directory.d.ts +38 -2
- package/dist/src/directory.js +49 -8
- package/dist/src/directory.js.map +1 -1
- package/dist/src/docx.d.ts +10 -0
- package/dist/src/docx.js +83 -28
- package/dist/src/docx.js.map +1 -1
- package/dist/src/media.js +87 -46
- package/dist/src/media.js.map +1 -1
- package/dist/src/mention.d.ts +16 -1
- package/dist/src/mention.js +22 -2
- package/dist/src/mention.js.map +1 -1
- package/dist/src/message-context.js +6 -3
- package/dist/src/message-context.js.map +1 -1
- package/dist/src/monitor.js +28 -40
- package/dist/src/monitor.js.map +1 -1
- package/dist/src/probe.js +9 -6
- package/dist/src/probe.js.map +1 -1
- package/dist/src/provider.js +1 -19
- package/dist/src/provider.js.map +1 -1
- package/dist/src/reactions.d.ts +1 -1
- package/dist/src/reactions.js +1 -1
- package/dist/src/reactions.js.map +1 -1
- package/dist/src/send.js +3 -4
- package/dist/src/send.js.map +1 -1
- package/dist/src/sender-name.d.ts +1 -0
- package/dist/src/sender-name.js +48 -1
- package/dist/src/sender-name.js.map +1 -1
- package/dist/src/typing.js +40 -45
- package/dist/src/typing.js.map +1 -1
- package/package.json +1 -1
package/dist/src/mention.d.ts
CHANGED
|
@@ -19,7 +19,22 @@ export declare function extractMentionTargets(event: LarkMessageEvent, botOpenId
|
|
|
19
19
|
*/
|
|
20
20
|
export declare function isMentionForwardRequest(event: LarkMessageEvent, botOpenId?: string): boolean;
|
|
21
21
|
/**
|
|
22
|
-
* Extract message body from text
|
|
22
|
+
* Extract message body from text by removing @ mention placeholders.
|
|
23
|
+
*
|
|
24
|
+
* This function removes all mention placeholders (e.g., @_user_1) from the message text
|
|
25
|
+
* and normalizes whitespace. This is useful for extracting the actual message content
|
|
26
|
+
* without the mention formatting.
|
|
27
|
+
*
|
|
28
|
+
* @param text - The original message text containing mentions
|
|
29
|
+
* @param allMentionKeys - Array of mention placeholder keys to remove (e.g., ["@_user_1", "@_user_2"])
|
|
30
|
+
* @returns The cleaned message body with mentions removed and whitespace normalized
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const text = "Hello @_user_1 how are you?";
|
|
35
|
+
* const body = extractMessageBody(text, ["@_user_1"]);
|
|
36
|
+
* // Returns: "Hello how are you?"
|
|
37
|
+
* ```
|
|
23
38
|
*/
|
|
24
39
|
export declare function extractMessageBody(text: string, allMentionKeys: string[]): string;
|
|
25
40
|
/**
|
package/dist/src/mention.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regex pattern for matching special regex characters that need escaping
|
|
3
|
+
*/
|
|
4
|
+
const SPECIAL_CHARS_REGEX = /[.*+?^${}()|[\]\\]/g;
|
|
1
5
|
/**
|
|
2
6
|
* Extract mention targets from message event (excluding the bot itself)
|
|
3
7
|
*/
|
|
@@ -40,13 +44,29 @@ export function isMentionForwardRequest(event, botOpenId) {
|
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
43
|
-
* Extract message body from text
|
|
47
|
+
* Extract message body from text by removing @ mention placeholders.
|
|
48
|
+
*
|
|
49
|
+
* This function removes all mention placeholders (e.g., @_user_1) from the message text
|
|
50
|
+
* and normalizes whitespace. This is useful for extracting the actual message content
|
|
51
|
+
* without the mention formatting.
|
|
52
|
+
*
|
|
53
|
+
* @param text - The original message text containing mentions
|
|
54
|
+
* @param allMentionKeys - Array of mention placeholder keys to remove (e.g., ["@_user_1", "@_user_2"])
|
|
55
|
+
* @returns The cleaned message body with mentions removed and whitespace normalized
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const text = "Hello @_user_1 how are you?";
|
|
60
|
+
* const body = extractMessageBody(text, ["@_user_1"]);
|
|
61
|
+
* // Returns: "Hello how are you?"
|
|
62
|
+
* ```
|
|
44
63
|
*/
|
|
45
64
|
export function extractMessageBody(text, allMentionKeys) {
|
|
46
65
|
let result = text;
|
|
47
66
|
// Remove all @ placeholders
|
|
48
67
|
for (const key of allMentionKeys) {
|
|
49
|
-
|
|
68
|
+
const escapedKey = key.replace(SPECIAL_CHARS_REGEX, "\\$&");
|
|
69
|
+
result = result.replace(new RegExp(escapedKey, "g"), "");
|
|
50
70
|
}
|
|
51
71
|
return result.replace(/\s+/g, " ").trim();
|
|
52
72
|
}
|
package/dist/src/mention.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention.js","sourceRoot":"","sources":["../../src/mention.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mention.js","sourceRoot":"","sources":["../../src/mention.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createLarkClient } from "./client.js";
|
|
8
8
|
import { extractText as extractTextFromMessage } from "./monitor.js";
|
|
9
|
+
import { getLarkRuntime } from "./runtime.js";
|
|
10
|
+
// Maximum length for quoted message content in context
|
|
11
|
+
const QUOTED_CONTENT_MAX_LENGTH = 200;
|
|
9
12
|
/**
|
|
10
13
|
* Get a message by its ID.
|
|
11
14
|
*
|
|
@@ -42,7 +45,7 @@ export async function getLarkMessage(params) {
|
|
|
42
45
|
};
|
|
43
46
|
}
|
|
44
47
|
catch (error) {
|
|
45
|
-
|
|
48
|
+
getLarkRuntime().logger.error(`[lark] Failed to get message ${messageId}: ${error}`);
|
|
46
49
|
return null;
|
|
47
50
|
}
|
|
48
51
|
}
|
|
@@ -60,8 +63,8 @@ export function formatQuotedContext(quotedMessage) {
|
|
|
60
63
|
return "";
|
|
61
64
|
}
|
|
62
65
|
const sender = quotedMessage.senderOpenId || quotedMessage.senderId || "Unknown";
|
|
63
|
-
const content = quotedMessage.content.slice(0,
|
|
64
|
-
const ellipsis = quotedMessage.content.length >
|
|
66
|
+
const content = quotedMessage.content.slice(0, QUOTED_CONTENT_MAX_LENGTH);
|
|
67
|
+
const ellipsis = quotedMessage.content.length > QUOTED_CONTENT_MAX_LENGTH ? "..." : "";
|
|
65
68
|
return `[Replying to ${sender}: "${content}"${ellipsis}]`;
|
|
66
69
|
}
|
|
67
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-context.js","sourceRoot":"","sources":["../../src/message-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"message-context.js","sourceRoot":"","sources":["../../src/message-context.ts"],"names":[],"mappings":"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"}
|
package/dist/src/monitor.js
CHANGED
|
@@ -5,30 +5,12 @@
|
|
|
5
5
|
* and routes them to the OpenClaw message handler.
|
|
6
6
|
*/
|
|
7
7
|
import { createLarkWSClient, createEventDispatcher, createLarkClient } from "./client.js";
|
|
8
|
+
import { inferReceiveIdType } from "./utils.js";
|
|
8
9
|
import { getLarkRuntime } from "./runtime.js";
|
|
9
10
|
import { startWebhookServer } from "./webhook.js";
|
|
10
11
|
// Active connections for cleanup
|
|
11
12
|
let activeWsClient = null;
|
|
12
13
|
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
|
-
}
|
|
32
14
|
/**
|
|
33
15
|
* Extract plain text from Lark message content.
|
|
34
16
|
* Handles different message types (text, post/rich-text).
|
|
@@ -91,7 +73,9 @@ export function parseMessage(event) {
|
|
|
91
73
|
}
|
|
92
74
|
}
|
|
93
75
|
catch (error) {
|
|
94
|
-
//
|
|
76
|
+
// Log parsing errors for media but continue processing
|
|
77
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
78
|
+
getLarkRuntime().logger.debug(`[lark] Media parsing error for message ${message.message_id}: ${errorMsg}`);
|
|
95
79
|
}
|
|
96
80
|
// If no text and no media, skip
|
|
97
81
|
if (!text.trim() && media.length === 0) {
|
|
@@ -120,10 +104,10 @@ export async function routeMessage(event, account) {
|
|
|
120
104
|
const api = getLarkRuntime();
|
|
121
105
|
const parsed = parseMessage(event);
|
|
122
106
|
if (!parsed) {
|
|
123
|
-
api.logger.debug("[
|
|
107
|
+
api.logger.debug("[lark] Skipping empty or unparseable message");
|
|
124
108
|
return;
|
|
125
109
|
}
|
|
126
|
-
api.logger.info(`[
|
|
110
|
+
api.logger.info(`[lark] Received message from ${parsed.senderId} in ${parsed.chatType} ${parsed.chatId}`);
|
|
127
111
|
// Route message to OpenClaw's message dispatcher
|
|
128
112
|
// Use the runtime's channel.reply API if available
|
|
129
113
|
const runtime = api.runtime;
|
|
@@ -195,49 +179,53 @@ export async function routeMessage(event, account) {
|
|
|
195
179
|
},
|
|
196
180
|
});
|
|
197
181
|
if (response.code === 0) {
|
|
198
|
-
api.logger.info(`[
|
|
182
|
+
api.logger.info(`[lark] Reply sent: message_id=${response.data?.message_id}`);
|
|
199
183
|
}
|
|
200
184
|
else {
|
|
201
|
-
api.logger.error(`[
|
|
185
|
+
api.logger.error(`[lark] Failed to send reply: ${response.msg}`);
|
|
202
186
|
}
|
|
203
187
|
}
|
|
204
188
|
}
|
|
205
189
|
catch (err) {
|
|
206
|
-
|
|
190
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
191
|
+
api.logger.error(`[lark] Error sending reply to ${parsed.chatId}: ${errorMsg}`);
|
|
207
192
|
}
|
|
208
193
|
},
|
|
209
194
|
onError: (err) => {
|
|
210
|
-
api.logger.error(`[
|
|
195
|
+
api.logger.error(`[lark] Reply error: ${err}`);
|
|
211
196
|
},
|
|
212
197
|
},
|
|
213
198
|
replyOptions: {},
|
|
214
199
|
});
|
|
215
|
-
api.logger.info(`[
|
|
200
|
+
api.logger.info(`[lark] Message routed to agent ${route.agentId}`);
|
|
216
201
|
}
|
|
217
202
|
}
|
|
218
203
|
catch (error) {
|
|
219
|
-
|
|
204
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
205
|
+
api.logger.error(`[lark] Failed to route message ${parsed.messageId}: ${errorMsg}`);
|
|
220
206
|
}
|
|
221
207
|
}
|
|
222
208
|
else {
|
|
223
|
-
api.logger.warn("[
|
|
209
|
+
api.logger.warn("[lark] Runtime dispatcher not available, message not routed");
|
|
224
210
|
}
|
|
225
211
|
// Optional: Add a "received" reaction to indicate message was processed
|
|
226
|
-
// Using valid Lark emoji type: "
|
|
212
|
+
// Using valid Lark emoji type: "GET" (confirmed to work)
|
|
227
213
|
const client = createLarkClient(account);
|
|
228
214
|
try {
|
|
229
215
|
await client.im.messageReaction.create({
|
|
230
216
|
path: { message_id: parsed.messageId },
|
|
231
217
|
data: {
|
|
232
218
|
reaction_type: {
|
|
233
|
-
emoji_type: "
|
|
219
|
+
emoji_type: "GET",
|
|
234
220
|
},
|
|
235
221
|
},
|
|
236
222
|
});
|
|
237
223
|
}
|
|
238
224
|
catch (e) {
|
|
239
|
-
// Ignore reaction errors (e.g., message already deleted)
|
|
240
|
-
|
|
225
|
+
// Ignore reaction errors (e.g., message already deleted, insufficient permissions)
|
|
226
|
+
// Log with more details for debugging
|
|
227
|
+
const errorMsg = e instanceof Error ? e.message : String(e);
|
|
228
|
+
api.logger.debug(`[lark] Reaction add failed for message ${parsed.messageId}: ${errorMsg}`);
|
|
241
229
|
}
|
|
242
230
|
}
|
|
243
231
|
/**
|
|
@@ -245,7 +233,7 @@ export async function routeMessage(event, account) {
|
|
|
245
233
|
*/
|
|
246
234
|
async function startWebSocket(account, abortSignal) {
|
|
247
235
|
const api = getLarkRuntime();
|
|
248
|
-
api.logger.info(`[
|
|
236
|
+
api.logger.info(`[lark] Starting WebSocket connection for account: ${account.accountId}`);
|
|
249
237
|
const wsClient = createLarkWSClient(account);
|
|
250
238
|
activeWsClient = wsClient;
|
|
251
239
|
const dispatcher = createEventDispatcher(account.encryptKey, account.verificationToken).register({
|
|
@@ -254,22 +242,22 @@ async function startWebSocket(account, abortSignal) {
|
|
|
254
242
|
await routeMessage(data, account);
|
|
255
243
|
}
|
|
256
244
|
catch (error) {
|
|
257
|
-
api.logger.error(`[
|
|
245
|
+
api.logger.error(`[lark] Error handling message: ${error}`);
|
|
258
246
|
}
|
|
259
247
|
},
|
|
260
248
|
});
|
|
261
249
|
try {
|
|
262
250
|
await wsClient.start({ eventDispatcher: dispatcher });
|
|
263
|
-
api.logger.info("[
|
|
251
|
+
api.logger.info("[lark] WebSocket connection established");
|
|
264
252
|
}
|
|
265
253
|
catch (error) {
|
|
266
|
-
api.logger.error(`[
|
|
254
|
+
api.logger.error(`[lark] WebSocket start failed: ${error}`);
|
|
267
255
|
throw error;
|
|
268
256
|
}
|
|
269
257
|
// Handle abort signal for graceful shutdown
|
|
270
258
|
if (abortSignal) {
|
|
271
259
|
abortSignal.addEventListener("abort", () => {
|
|
272
|
-
api.logger.info("[
|
|
260
|
+
api.logger.info("[lark] Stopping WebSocket (abort signal received)");
|
|
273
261
|
stopMonitor();
|
|
274
262
|
}, { once: true });
|
|
275
263
|
}
|
|
@@ -289,13 +277,13 @@ export async function monitorLarkProvider(options) {
|
|
|
289
277
|
return;
|
|
290
278
|
}
|
|
291
279
|
// Webhook mode - start HTTP server
|
|
292
|
-
api.logger.info("[
|
|
280
|
+
api.logger.info("[lark] Starting webhook server for individual account");
|
|
293
281
|
const webhookServer = await startWebhookServer({ account, abortSignal });
|
|
294
282
|
activeWebhookServer = webhookServer;
|
|
295
283
|
// Handle abort signal for graceful shutdown
|
|
296
284
|
if (abortSignal) {
|
|
297
285
|
abortSignal.addEventListener("abort", () => {
|
|
298
|
-
api.logger.info("[
|
|
286
|
+
api.logger.info("[lark] Stopping webhook server (abort signal received)");
|
|
299
287
|
webhookServer.stop();
|
|
300
288
|
activeWebhookServer = null;
|
|
301
289
|
}, { once: true });
|
package/dist/src/monitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOlD,iCAAiC;AACjC,IAAI,cAAc,GAAoB,IAAI,CAAC;AAC3C,IAAI,mBAAmB,GAAgC,IAAI,CAAC;AAE5D
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/probe.js
CHANGED
|
@@ -21,24 +21,27 @@ export async function probeLark(account) {
|
|
|
21
21
|
try {
|
|
22
22
|
const client = createLarkClient(account);
|
|
23
23
|
// Use bot info API to test connectivity
|
|
24
|
-
const response = await client.request({
|
|
24
|
+
const response = (await client.request({
|
|
25
25
|
method: "GET",
|
|
26
26
|
url: "/open-apis/bot/v3/info",
|
|
27
27
|
data: {},
|
|
28
|
-
});
|
|
28
|
+
}));
|
|
29
29
|
if (response.code !== 0) {
|
|
30
|
+
const apiResponse = response;
|
|
30
31
|
return {
|
|
31
32
|
ok: false,
|
|
32
33
|
appId: account.appId,
|
|
33
|
-
error: `API error: ${
|
|
34
|
+
error: `API error: ${apiResponse.msg || `code ${apiResponse.code}`}`,
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
+
// Extract bot info from various possible response formats
|
|
38
|
+
const apiResponse = response;
|
|
39
|
+
const botInfo = apiResponse.data?.bot || apiResponse.data || apiResponse.bot || response.bot;
|
|
37
40
|
return {
|
|
38
41
|
ok: true,
|
|
39
42
|
appId: account.appId,
|
|
40
|
-
botName:
|
|
41
|
-
botOpenId:
|
|
43
|
+
botName: botInfo?.bot_name,
|
|
44
|
+
botOpenId: botInfo?.open_id,
|
|
42
45
|
};
|
|
43
46
|
}
|
|
44
47
|
catch (err) {
|
package/dist/src/probe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA6B/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA4B;IAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,wCAAwC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEzC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,CAAC,MAAO,MAAc,CAAC,OAAO,CAAC;YAC9C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,EAAE;SACT,CAAC,CAAyD,CAAC;QAE5D,IAAK,QAAyC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,QAAwC,CAAC;YAC7D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,cAAc,WAAW,CAAC,GAAG,IAAI,QAAQ,WAAW,CAAC,IAAI,EAAE,EAAE;aACrE,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,MAAM,WAAW,GAAG,QAAwC,CAAC;QAC7D,MAAM,OAAO,GAAI,WAAW,CAAC,IAAY,EAAE,GAAG,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,IAAK,QAAgB,CAAC,GAAG,CAAC;QAC/G,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,EAAE,QAAQ;YAC1B,SAAS,EAAE,OAAO,EAAE,OAAO;SAC5B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/src/provider.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Provides message monitoring, processing, and sending capabilities.
|
|
6
6
|
*/
|
|
7
7
|
import { createLarkClient } from "./client.js";
|
|
8
|
+
import { inferReceiveIdType } from "./utils.js";
|
|
8
9
|
import { monitorLarkProvider, stopMonitor } from "./monitor.js";
|
|
9
10
|
import { listLarkDirectoryPeers, listLarkDirectoryGroups } from "./directory.js";
|
|
10
11
|
import { addReactionLark, removeReactionLark, listReactionsLark } from "./reactions.js";
|
|
@@ -74,25 +75,6 @@ function resolveAccount(cfg, accountId) {
|
|
|
74
75
|
historyLimit: accountConfig.historyLimit ?? DEFAULTS.historyLimit,
|
|
75
76
|
};
|
|
76
77
|
}
|
|
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
78
|
/**
|
|
97
79
|
* Send a message via Lark API, supporting text and interactive cards.
|
|
98
80
|
*/
|
package/dist/src/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/src/reactions.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type LarkReaction = {
|
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
9
|
* Add a reaction (emoji) to a message.
|
|
10
|
-
* @param emojiType - Lark emoji type, e.g., "SMILE", "
|
|
10
|
+
* @param emojiType - Lark emoji type, e.g., "SMILE", "GET", "HEART"
|
|
11
11
|
*/
|
|
12
12
|
export declare function addReactionLark(params: {
|
|
13
13
|
account: ResolvedLarkAccount;
|
package/dist/src/reactions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createLarkClient } from "./client.js";
|
|
2
2
|
/**
|
|
3
3
|
* Add a reaction (emoji) to a message.
|
|
4
|
-
* @param emojiType - Lark emoji type, e.g., "SMILE", "
|
|
4
|
+
* @param emojiType - Lark emoji type, e.g., "SMILE", "GET", "HEART"
|
|
5
5
|
*/
|
|
6
6
|
export async function addReactionLark(params) {
|
|
7
7
|
const { account, messageId, emojiType } = params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactions.js","sourceRoot":"","sources":["../../src/reactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"reactions.js","sourceRoot":"","sources":["../../src/reactions.ts"],"names":[],"mappings":"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"}
|
package/dist/src/send.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createLarkClient } from "./client.js";
|
|
8
8
|
import { inferReceiveIdType, normalizeLarkTarget } from "./utils.js";
|
|
9
|
-
import { buildMentionedCardContent } from "./mention.js";
|
|
9
|
+
import { buildMentionedCardContent, buildMentionedMessage } from "./mention.js";
|
|
10
10
|
/**
|
|
11
11
|
* Detect if text contains markdown elements that benefit from card rendering.
|
|
12
12
|
* Used by auto render mode to determine when to use interactive cards.
|
|
@@ -40,9 +40,8 @@ export async function sendMessageLark(params) {
|
|
|
40
40
|
// Build message content (with @mention support)
|
|
41
41
|
let messageText = text ?? "";
|
|
42
42
|
if (mentions && mentions.length > 0) {
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
messageText = text; // TODO: Implement proper mention formatting for text messages
|
|
43
|
+
// Build text with proper mention formatting
|
|
44
|
+
messageText = buildMentionedMessage(mentions, text);
|
|
46
45
|
}
|
|
47
46
|
const content = JSON.stringify({ text: messageText });
|
|
48
47
|
if (replyToMessageId) {
|
package/dist/src/send.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/send.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/send.ts"],"names":[],"mappings":"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"}
|
package/dist/src/sender-name.js
CHANGED
|
@@ -10,7 +10,53 @@
|
|
|
10
10
|
import { createLarkClient } from "./client.js";
|
|
11
11
|
// Cache display names by open_id to avoid an API call on every message
|
|
12
12
|
const SENDER_NAME_TTL_MS = 10 * 60 * 1000; // 10 minutes
|
|
13
|
-
const
|
|
13
|
+
const SENDER_NAME_CACHE_MAX_SIZE = 500; // Max entries to prevent memory leaks
|
|
14
|
+
// Simple LRU cache implementation
|
|
15
|
+
class LRUCache {
|
|
16
|
+
maxsize;
|
|
17
|
+
cache;
|
|
18
|
+
constructor(maxSize) {
|
|
19
|
+
this.maxsize = maxSize;
|
|
20
|
+
this.cache = new Map();
|
|
21
|
+
}
|
|
22
|
+
get(key) {
|
|
23
|
+
const value = this.cache.get(key);
|
|
24
|
+
if (value !== undefined) {
|
|
25
|
+
// Move to end (most recently used)
|
|
26
|
+
this.cache.delete(key);
|
|
27
|
+
this.cache.set(key, value);
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
set(key, value) {
|
|
32
|
+
// Remove if exists (will be re-added at end)
|
|
33
|
+
if (this.cache.has(key)) {
|
|
34
|
+
this.cache.delete(key);
|
|
35
|
+
}
|
|
36
|
+
// Add at end
|
|
37
|
+
this.cache.set(key, value);
|
|
38
|
+
// Evict oldest if over limit
|
|
39
|
+
if (this.cache.size > this.maxsize) {
|
|
40
|
+
const firstKey = this.cache.keys().next().value;
|
|
41
|
+
if (firstKey !== undefined) {
|
|
42
|
+
this.cache.delete(firstKey);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
has(key) {
|
|
47
|
+
return this.cache.has(key);
|
|
48
|
+
}
|
|
49
|
+
clear() {
|
|
50
|
+
this.cache.clear();
|
|
51
|
+
}
|
|
52
|
+
get size() {
|
|
53
|
+
return this.cache.size;
|
|
54
|
+
}
|
|
55
|
+
entries() {
|
|
56
|
+
return this.cache.entries();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const senderNameCache = new LRUCache(SENDER_NAME_CACHE_MAX_SIZE);
|
|
14
60
|
/**
|
|
15
61
|
* Resolve sender display name from open_id.
|
|
16
62
|
*
|
|
@@ -79,6 +125,7 @@ export function getSenderNameCacheStats() {
|
|
|
79
125
|
}));
|
|
80
126
|
return {
|
|
81
127
|
size: entries.length,
|
|
128
|
+
maxSize: SENDER_NAME_CACHE_MAX_SIZE,
|
|
82
129
|
entries,
|
|
83
130
|
};
|
|
84
131
|
}
|