@wecom/wecom-openclaw-plugin 1.0.3-beta.0 → 1.0.4

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.cjs.js CHANGED
@@ -428,18 +428,19 @@ function isGroupSenderAllowed(params) {
428
428
  function checkGroupPolicy(params) {
429
429
  const { chatId, senderId, account, config, runtime } = params;
430
430
  const wecomConfig = (config.channels?.[CHANNEL_ID] ?? {});
431
- const defaultGroupPolicy = pluginSdk.resolveDefaultGroupPolicy(config);
432
- const { groupPolicy, providerMissingFallbackApplied } = pluginSdk.resolveOpenProviderRuntimeGroupPolicy({
433
- providerConfigPresent: config.channels?.[CHANNEL_ID] !== undefined,
434
- groupPolicy: wecomConfig.groupPolicy,
435
- defaultGroupPolicy,
436
- });
437
- pluginSdk.warnMissingProviderGroupPolicyFallbackOnce({
438
- providerMissingFallbackApplied,
439
- providerKey: CHANNEL_ID,
440
- accountId: account.accountId,
441
- log: (msg) => runtime.log?.(msg),
442
- });
431
+ const defaultGroupPolicy = config.channels?.[CHANNEL_ID]?.groupPolicy;
432
+ const groupPolicy = account.config.groupPolicy ?? defaultGroupPolicy ?? "open";
433
+ // const { groupPolicy, providerMissingFallbackApplied } = resolveOpenProviderRuntimeGroupPolicy({
434
+ // providerConfigPresent: config.channels?.[CHANNEL_ID] !== undefined,
435
+ // groupPolicy: wecomConfig.groupPolicy,
436
+ // defaultGroupPolicy,
437
+ // });
438
+ // warnMissingProviderGroupPolicyFallbackOnce({
439
+ // providerMissingFallbackApplied,
440
+ // providerKey: CHANNEL_ID,
441
+ // accountId: account.accountId,
442
+ // log: (msg) => runtime.log?.(msg),
443
+ // });
443
444
  const groupAllowFrom = wecomConfig.groupAllowFrom ?? [];
444
445
  const groupAllowed = isWeComGroupAllowed({
445
446
  groupPolicy,
@@ -693,7 +694,7 @@ function createPersistentReqIdStore(accountId, options) {
693
694
  }
694
695
  catch (error) {
695
696
  // 磁盘写入失败不影响内存使用,降级到纯内存模式
696
- console.error(`[WeCom] reqid-store: flush to disk failed: ${String(error)}`);
697
+ // console.error(`[WeCom] reqid-store: flush to disk failed: ${String(error)}`);
697
698
  }
698
699
  }
699
700
  // ========== 公开 API ==========
@@ -1501,7 +1502,7 @@ async function sendWeComMessage({ to, content, accountId, }) {
1501
1502
  console.log(`[WeCom] sendWeComMessage: ${JSON.stringify({ to, content, accountId })}`);
1502
1503
  // 获取 WSClient 实例
1503
1504
  const wsClient = getWeComWebSocket(resolvedAccountId);
1504
- if (!wsClient || !wsClient.isConnected) {
1505
+ if (!wsClient) {
1505
1506
  throw new Error(`WSClient not connected for account ${resolvedAccountId}`);
1506
1507
  }
1507
1508
  // 使用 SDK 的 sendMessage 主动发送 markdown 消息
@@ -1538,8 +1539,11 @@ const wecomPlugin = {
1538
1539
  idLabel: "wecomUserId",
1539
1540
  normalizeAllowEntry: (entry) => entry.replace(new RegExp(`^(${CHANNEL_ID}|user):`, "i"), "").trim(),
1540
1541
  notifyApproval: async ({ cfg, id }) => {
1541
- // 企业微信机器人不支持主动发送消息,只能在用户下次发消息时通知
1542
- // 这里暂时不实现,因为需要有 reqId 才能回复
1542
+ // sendWeComMessage({
1543
+ // to: id,
1544
+ // content: " pairing approved",
1545
+ // accountId: cfg.accountId,
1546
+ // });
1543
1547
  console.log(`[WeCom] Pairing approved for user: ${id}`);
1544
1548
  },
1545
1549
  },
@@ -1619,7 +1623,7 @@ const wecomPlugin = {
1619
1623
  normalizeEntry: (raw) => raw.replace(new RegExp(`^${CHANNEL_ID}:`, "i"), "").trim(),
1620
1624
  };
1621
1625
  },
1622
- collectWarnings: ({ account }) => {
1626
+ collectWarnings: ({ account, cfg }) => {
1623
1627
  const warnings = [];
1624
1628
  // DM 策略警告
1625
1629
  const dmPolicy = account.config.dmPolicy ?? "pairing";
@@ -1630,12 +1634,13 @@ const wecomPlugin = {
1630
1634
  }
1631
1635
  }
1632
1636
  // 群组策略警告
1633
- const defaultGroupPolicy = pluginSdk.resolveDefaultGroupPolicy({});
1634
- const { groupPolicy } = pluginSdk.resolveOpenProviderRuntimeGroupPolicy({
1635
- providerConfigPresent: true,
1636
- groupPolicy: account.config.groupPolicy,
1637
- defaultGroupPolicy,
1638
- });
1637
+ const defaultGroupPolicy = cfg.channels?.defaults?.groupPolicy;
1638
+ const groupPolicy = account.config.groupPolicy ?? defaultGroupPolicy ?? "open";
1639
+ // const { groupPolicy } = resolveOpenProviderRuntimeGroupPolicy({
1640
+ // providerConfigPresent: true,
1641
+ // groupPolicy: account.config.groupPolicy,
1642
+ // defaultGroupPolicy,
1643
+ // });
1639
1644
  if (groupPolicy === "open") {
1640
1645
  warnings.push(`- 企业微信群组:groupPolicy="open" 允许所有群组中的成员触发。设置 channels.${CHANNEL_ID}.groupPolicy="allowlist" + channels.${CHANNEL_ID}.groupAllowFrom 来限制群组。`);
1641
1646
  }