@openclaw/feishu 2026.8.1 → 2026.8.2
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 +30 -26
- package/dist/{app-registration-BpfUzS9m.js → app-registration-BI99e_JI.js} +12 -9
- package/dist/{channel-CnpfeyYb.js → channel-BtM7n79m.js} +46 -33
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-BhBg13ML.js → channel.runtime-DmCiCQJE.js} +5 -5
- package/dist/{chat-BjgJQ9dk.js → chat-Cbr7P_JH.js} +12 -9
- package/dist/{client-DalLmpMf.js → client-vJJyfkxI.js} +2 -1
- package/dist/contract-api.js +2 -2
- package/dist/{doctor-contract-DpQKxB7B.js → doctor-contract-CQAuBotF.js} +3 -2
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{json-response-CheljwGr.js → json-response-DXajw_FU.js} +1 -1
- package/dist/{monitor.startup-D-gL82OO.js → monitor-BVYpA9SO.js} +62 -2
- package/dist/{monitor.account-B6Fv45B2.js → monitor.account-CuOAmGJf.js} +74 -66
- package/dist/{probe-CfhhR_0a.js → probe-Cs1s-qSS.js} +3 -3
- package/dist/{reply-delivery-result-7Jezz03B.js → reply-delivery-result-BIIeISPG.js} +21 -15
- package/dist/{security-audit-D6Fz2h6p.js → security-audit-DKfR4Cv3.js} +1 -1
- package/dist/{security-audit-shared-BgpY7AiJ.js → security-audit-shared-CK5rVR-1.js} +2 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/session-binding-contract-api.js +1 -1
- package/dist/setup-api.js +1 -1
- package/dist/{subagent-hooks-DOwDqgg7.js → subagent-hooks-BnO3ALWB.js} +1 -1
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/{thread-bindings-DlDOHuiJ.js → thread-bindings-BiL1wGqK.js} +19 -8
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/ws/lib/permessage-deflate.js +3 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/ws/package.json +1 -1
- package/node_modules/typebox/build/format/email.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
- package/node_modules/typebox/package.json +1 -1
- package/package.json +5 -5
- package/dist/monitor-DRVC2e_W.js +0 -62
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as FormatBidi from './format/bidi.mjs';
|
|
2
2
|
import * as LabelUnicode from './label/unicode.mjs';
|
|
3
3
|
import * as LabelPuny from './label/puny.mjs';
|
|
4
|
+
// ------------------------------------------------------------------
|
|
5
|
+
// IsLabel
|
|
6
|
+
// ------------------------------------------------------------------
|
|
4
7
|
function IsValidLabelLength(value) {
|
|
5
8
|
return value.length > 0 && value.length <= 63;
|
|
6
9
|
}
|
|
@@ -8,9 +11,24 @@ function IsLabel(value) {
|
|
|
8
11
|
return IsValidLabelLength(value) && (LabelPuny.IsPunyLabel(value) ||
|
|
9
12
|
LabelUnicode.IsUnicodeLabel(value));
|
|
10
13
|
}
|
|
14
|
+
// ------------------------------------------------------------------
|
|
15
|
+
// NormalizeHostname
|
|
16
|
+
//
|
|
17
|
+
// Normalizes a hostname for label validation. Normalizes for NFC
|
|
18
|
+
// such that equivalent codepoint sequences can be uniformly
|
|
19
|
+
// compared. It also removes codepoints that IDNA mapping ignores,
|
|
20
|
+
// and converts full stop variants to ASCII '.' so the hostname can
|
|
21
|
+
// be split into labels.
|
|
22
|
+
// ------------------------------------------------------------------
|
|
11
23
|
function NormalizeHostname(value) {
|
|
12
|
-
return value
|
|
24
|
+
return value
|
|
25
|
+
.normalize('NFC')
|
|
26
|
+
.replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu, '') // RE_IGNORED_MAPPING
|
|
27
|
+
.replace(/[\u002E\u3002\uFF0E\uFF61]/g, '.'); // RE_FULL_STOP_MAPPING
|
|
13
28
|
}
|
|
29
|
+
// ------------------------------------------------------------------
|
|
30
|
+
// IsIdnHostname
|
|
31
|
+
// ------------------------------------------------------------------
|
|
14
32
|
export function IsIdnHostname(value) {
|
|
15
33
|
if (value.length === 0 || value.includes(' '))
|
|
16
34
|
return false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/feishu",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.2",
|
|
4
4
|
"description": "OpenClaw Feishu/Lark channel plugin for chats and workplace tools (community maintained by @m1heng).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
"mdast-util-from-markdown": "2.0.3",
|
|
13
13
|
"mdast-util-gfm-table": "2.0.0",
|
|
14
14
|
"micromark-extension-gfm-table": "2.1.1",
|
|
15
|
-
"typebox": "1.3.
|
|
15
|
+
"typebox": "1.3.17",
|
|
16
16
|
"zod": "4.4.3"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"openclaw": ">=2026.8.
|
|
19
|
+
"openclaw": ">=2026.8.2"
|
|
20
20
|
},
|
|
21
21
|
"peerDependenciesMeta": {
|
|
22
22
|
"openclaw": {
|
|
@@ -62,10 +62,10 @@
|
|
|
62
62
|
"minHostVersion": ">=2026.5.29"
|
|
63
63
|
},
|
|
64
64
|
"compat": {
|
|
65
|
-
"pluginApi": ">=2026.8.
|
|
65
|
+
"pluginApi": ">=2026.8.2"
|
|
66
66
|
},
|
|
67
67
|
"build": {
|
|
68
|
-
"openclawVersion": "2026.8.
|
|
68
|
+
"openclawVersion": "2026.8.2"
|
|
69
69
|
},
|
|
70
70
|
"release": {
|
|
71
71
|
"publishToClawHub": true,
|
package/dist/monitor-DRVC2e_W.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { r as listEnabledFeishuAccounts, s as resolveFeishuRuntimeAccount } from "./accounts-RwSyseKr.js";
|
|
2
|
-
import { t as fetchBotIdentityForMonitor } from "./monitor.startup-D-gL82OO.js";
|
|
3
|
-
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
4
|
-
//#region extensions/feishu/src/monitor.ts
|
|
5
|
-
const loadMonitorAccountRuntime = createLazyRuntimeModule(() => import("./monitor.account-B6Fv45B2.js"));
|
|
6
|
-
async function monitorFeishuProvider(opts = {}) {
|
|
7
|
-
const cfg = opts.config;
|
|
8
|
-
if (!cfg) throw new Error("Config is required for Feishu monitor");
|
|
9
|
-
const log = opts.runtime?.log ?? console.log;
|
|
10
|
-
if (opts.accountId) {
|
|
11
|
-
const account = resolveFeishuRuntimeAccount({
|
|
12
|
-
cfg,
|
|
13
|
-
accountId: opts.accountId
|
|
14
|
-
}, { requireEventSecrets: true });
|
|
15
|
-
if (!account.enabled || !account.configured) throw new Error(`Feishu account "${opts.accountId}" not configured or disabled`);
|
|
16
|
-
const { monitorSingleAccount } = await loadMonitorAccountRuntime();
|
|
17
|
-
return monitorSingleAccount({
|
|
18
|
-
cfg,
|
|
19
|
-
account,
|
|
20
|
-
channelRuntime: opts.channelRuntime,
|
|
21
|
-
runtime: opts.runtime,
|
|
22
|
-
abortSignal: opts.abortSignal,
|
|
23
|
-
...opts.statusSink ? { statusSink: opts.statusSink } : {}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
const accounts = listEnabledFeishuAccounts(cfg);
|
|
27
|
-
if (accounts.length === 0) throw new Error("No enabled Feishu accounts configured");
|
|
28
|
-
log(`feishu: starting ${accounts.length} account(s): ${accounts.map((a) => a.accountId).join(", ")}`);
|
|
29
|
-
const { monitorSingleAccount } = await loadMonitorAccountRuntime();
|
|
30
|
-
const monitorPromises = [];
|
|
31
|
-
for (const account of accounts) {
|
|
32
|
-
if (opts.abortSignal?.aborted) {
|
|
33
|
-
log("feishu: abort signal received during startup preflight; stopping startup");
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
const { botOpenId, botName, source } = await fetchBotIdentityForMonitor(account, {
|
|
37
|
-
runtime: opts.runtime,
|
|
38
|
-
abortSignal: opts.abortSignal
|
|
39
|
-
});
|
|
40
|
-
if (opts.abortSignal?.aborted) {
|
|
41
|
-
log("feishu: abort signal received during startup preflight; stopping startup");
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
monitorPromises.push(monitorSingleAccount({
|
|
45
|
-
cfg,
|
|
46
|
-
account,
|
|
47
|
-
channelRuntime: opts.channelRuntime,
|
|
48
|
-
runtime: opts.runtime,
|
|
49
|
-
abortSignal: opts.abortSignal,
|
|
50
|
-
botOpenIdSource: {
|
|
51
|
-
kind: "prefetched",
|
|
52
|
-
botOpenId,
|
|
53
|
-
botName,
|
|
54
|
-
source
|
|
55
|
-
},
|
|
56
|
-
...opts.statusSink ? { statusSink: opts.statusSink } : {}
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
await Promise.all(monitorPromises);
|
|
60
|
-
}
|
|
61
|
-
//#endregion
|
|
62
|
-
export { monitorFeishuProvider };
|