@xwang152/claw-lark 0.1.29 → 0.1.30
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 +26 -38
- 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.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 +39 -44
- package/dist/src/typing.js.map +1 -1
- package/package.json +1 -1
package/dist/src/typing.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Reference: https://open.feishu.cn/document/server-docs/im-v1/message-reaction/emojis-introduce
|
|
11
11
|
*/
|
|
12
12
|
import { createLarkClient } from "./client.js";
|
|
13
|
+
import { getLarkRuntime } from "./runtime.js";
|
|
13
14
|
// Lark emoji type for typing indicator
|
|
14
15
|
// Note: "Typing" may not be available in all Lark instances
|
|
15
16
|
// Fallback options: "THUMBSUP", "OK", "SMILE"
|
|
@@ -20,6 +21,36 @@ const TYPING_EMOJI = "Typing";
|
|
|
20
21
|
function getChannelConfig(cfg) {
|
|
21
22
|
return cfg.channels?.lark ?? {};
|
|
22
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve account from config with proper defaults
|
|
26
|
+
*/
|
|
27
|
+
function resolveAccountFromConfig(cfg, accountId) {
|
|
28
|
+
const channelConfig = getChannelConfig(cfg);
|
|
29
|
+
const accountConfig = channelConfig.accounts?.[accountId];
|
|
30
|
+
if (!accountConfig?.appId || !accountConfig?.appSecret) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
accountId,
|
|
35
|
+
enabled: accountConfig.enabled ?? true,
|
|
36
|
+
configured: true,
|
|
37
|
+
appId: accountConfig.appId,
|
|
38
|
+
appSecret: accountConfig.appSecret,
|
|
39
|
+
encryptKey: accountConfig.encryptKey,
|
|
40
|
+
verificationToken: accountConfig.verificationToken,
|
|
41
|
+
domain: accountConfig.domain ?? "feishu",
|
|
42
|
+
connectionMode: accountConfig.connectionMode ?? "websocket",
|
|
43
|
+
webhookPort: accountConfig.webhookPort ?? 3000,
|
|
44
|
+
dmPolicy: accountConfig.dmPolicy ?? "open",
|
|
45
|
+
dmAllowlist: accountConfig.dmAllowlist ?? [],
|
|
46
|
+
groupPolicy: accountConfig.groupPolicy ?? "open",
|
|
47
|
+
groupAllowlist: accountConfig.groupAllowlist ?? [],
|
|
48
|
+
requireMention: accountConfig.requireMention ?? true,
|
|
49
|
+
mediaMaxMb: accountConfig.mediaMaxMb ?? 30,
|
|
50
|
+
renderMode: accountConfig.renderMode ?? "auto",
|
|
51
|
+
historyLimit: accountConfig.historyLimit ?? 10,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
23
54
|
/**
|
|
24
55
|
* Add a typing indicator (reaction) to a message.
|
|
25
56
|
*
|
|
@@ -31,29 +62,11 @@ function getChannelConfig(cfg) {
|
|
|
31
62
|
*/
|
|
32
63
|
export async function addTypingIndicator(params) {
|
|
33
64
|
const { cfg, messageId, accountId = "default" } = params;
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
if (!accountConfig?.appId || !accountConfig?.appSecret) {
|
|
65
|
+
const account = resolveAccountFromConfig(cfg, accountId);
|
|
66
|
+
if (!account) {
|
|
37
67
|
return { messageId, reactionId: null };
|
|
38
68
|
}
|
|
39
|
-
const client = createLarkClient(
|
|
40
|
-
accountId,
|
|
41
|
-
enabled: true,
|
|
42
|
-
configured: true,
|
|
43
|
-
appId: accountConfig.appId,
|
|
44
|
-
appSecret: accountConfig.appSecret,
|
|
45
|
-
domain: accountConfig.domain ?? "feishu",
|
|
46
|
-
connectionMode: "websocket",
|
|
47
|
-
webhookPort: 3000,
|
|
48
|
-
dmPolicy: "open",
|
|
49
|
-
dmAllowlist: [],
|
|
50
|
-
groupPolicy: "open",
|
|
51
|
-
groupAllowlist: [],
|
|
52
|
-
requireMention: true,
|
|
53
|
-
mediaMaxMb: 30,
|
|
54
|
-
renderMode: "auto",
|
|
55
|
-
historyLimit: 10,
|
|
56
|
-
});
|
|
69
|
+
const client = createLarkClient(account);
|
|
57
70
|
try {
|
|
58
71
|
const response = await client.im.messageReaction.create({
|
|
59
72
|
path: { message_id: messageId },
|
|
@@ -66,7 +79,7 @@ export async function addTypingIndicator(params) {
|
|
|
66
79
|
}
|
|
67
80
|
catch (err) {
|
|
68
81
|
// Silently fail - typing indicator is not critical
|
|
69
|
-
|
|
82
|
+
getLarkRuntime().logger.debug(`[lark] Failed to add typing indicator: ${err}`);
|
|
70
83
|
return { messageId, reactionId: null };
|
|
71
84
|
}
|
|
72
85
|
}
|
|
@@ -81,28 +94,10 @@ export async function removeTypingIndicator(params) {
|
|
|
81
94
|
const { cfg, state, accountId = "default" } = params;
|
|
82
95
|
if (!state.reactionId)
|
|
83
96
|
return;
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
if (!accountConfig?.appId || !accountConfig?.appSecret)
|
|
97
|
+
const account = resolveAccountFromConfig(cfg, accountId);
|
|
98
|
+
if (!account)
|
|
87
99
|
return;
|
|
88
|
-
const client = createLarkClient(
|
|
89
|
-
accountId,
|
|
90
|
-
enabled: true,
|
|
91
|
-
configured: true,
|
|
92
|
-
appId: accountConfig.appId,
|
|
93
|
-
appSecret: accountConfig.appSecret,
|
|
94
|
-
domain: accountConfig.domain ?? "feishu",
|
|
95
|
-
connectionMode: "websocket",
|
|
96
|
-
webhookPort: 3000,
|
|
97
|
-
dmPolicy: "open",
|
|
98
|
-
dmAllowlist: [],
|
|
99
|
-
groupPolicy: "open",
|
|
100
|
-
groupAllowlist: [],
|
|
101
|
-
requireMention: true,
|
|
102
|
-
mediaMaxMb: 30,
|
|
103
|
-
renderMode: "auto",
|
|
104
|
-
historyLimit: 10,
|
|
105
|
-
});
|
|
100
|
+
const client = createLarkClient(account);
|
|
106
101
|
try {
|
|
107
102
|
await client.im.messageReaction.delete({
|
|
108
103
|
path: {
|
|
@@ -113,7 +108,7 @@ export async function removeTypingIndicator(params) {
|
|
|
113
108
|
}
|
|
114
109
|
catch (err) {
|
|
115
110
|
// Silently fail - cleanup is not critical
|
|
116
|
-
|
|
111
|
+
getLarkRuntime().logger.debug(`[lark] Failed to remove typing indicator: ${err}`);
|
|
117
112
|
}
|
|
118
113
|
}
|
|
119
114
|
/**
|
package/dist/src/typing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typing.js","sourceRoot":"","sources":["../../src/typing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"typing.js","sourceRoot":"","sources":["../../src/typing.ts"],"names":[],"mappings":"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"}
|