@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 +28 -23
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +29 -24
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
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 =
|
|
432
|
-
const
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
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
|
|
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
|
-
//
|
|
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 =
|
|
1634
|
-
const
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
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
|
}
|