@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.
Files changed (30) hide show
  1. package/dist/api.js +30 -26
  2. package/dist/{app-registration-BpfUzS9m.js → app-registration-BI99e_JI.js} +12 -9
  3. package/dist/{channel-CnpfeyYb.js → channel-BtM7n79m.js} +46 -33
  4. package/dist/channel-plugin-api.js +1 -1
  5. package/dist/{channel.runtime-BhBg13ML.js → channel.runtime-DmCiCQJE.js} +5 -5
  6. package/dist/{chat-BjgJQ9dk.js → chat-Cbr7P_JH.js} +12 -9
  7. package/dist/{client-DalLmpMf.js → client-vJJyfkxI.js} +2 -1
  8. package/dist/contract-api.js +2 -2
  9. package/dist/{doctor-contract-DpQKxB7B.js → doctor-contract-CQAuBotF.js} +3 -2
  10. package/dist/doctor-contract-api.js +1 -1
  11. package/dist/{json-response-CheljwGr.js → json-response-DXajw_FU.js} +1 -1
  12. package/dist/{monitor.startup-D-gL82OO.js → monitor-BVYpA9SO.js} +62 -2
  13. package/dist/{monitor.account-B6Fv45B2.js → monitor.account-CuOAmGJf.js} +74 -66
  14. package/dist/{probe-CfhhR_0a.js → probe-Cs1s-qSS.js} +3 -3
  15. package/dist/{reply-delivery-result-7Jezz03B.js → reply-delivery-result-BIIeISPG.js} +21 -15
  16. package/dist/{security-audit-D6Fz2h6p.js → security-audit-DKfR4Cv3.js} +1 -1
  17. package/dist/{security-audit-shared-BgpY7AiJ.js → security-audit-shared-CK5rVR-1.js} +2 -1
  18. package/dist/security-contract-api.js +1 -1
  19. package/dist/session-binding-contract-api.js +1 -1
  20. package/dist/setup-api.js +1 -1
  21. package/dist/{subagent-hooks-DOwDqgg7.js → subagent-hooks-BnO3ALWB.js} +1 -1
  22. package/dist/subagent-hooks-api.js +1 -1
  23. package/dist/{thread-bindings-DlDOHuiJ.js → thread-bindings-BiL1wGqK.js} +19 -8
  24. package/node_modules/@larksuiteoapi/node-sdk/node_modules/ws/lib/permessage-deflate.js +3 -1
  25. package/node_modules/@larksuiteoapi/node-sdk/node_modules/ws/package.json +1 -1
  26. package/node_modules/typebox/build/format/email.mjs +1 -1
  27. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
  28. package/node_modules/typebox/package.json +1 -1
  29. package/package.json +5 -5
  30. 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.normalize('NFC').replace(/[\u002E\u3002\uFF0E\uFF61]/g, '.');
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;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "typebox",
3
3
  "description": "Json Schema Type Builder with Static Type Resolution for TypeScript",
4
- "version": "1.3.16",
4
+ "version": "1.3.17",
5
5
  "keywords": [
6
6
  "typescript",
7
7
  "jsonschema"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/feishu",
3
- "version": "2026.8.1",
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.16",
15
+ "typebox": "1.3.17",
16
16
  "zod": "4.4.3"
17
17
  },
18
18
  "peerDependencies": {
19
- "openclaw": ">=2026.8.1"
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.1"
65
+ "pluginApi": ">=2026.8.2"
66
66
  },
67
67
  "build": {
68
- "openclawVersion": "2026.8.1"
68
+ "openclawVersion": "2026.8.2"
69
69
  },
70
70
  "release": {
71
71
  "publishToClawHub": true,
@@ -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 };