@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.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readJsonFileWithFallback, withFileLock, writeJsonFileAtomically, DEFAULT_ACCOUNT_ID, addWildcardAllowFrom, formatPairingApproveHint, emptyPluginConfigSchema } from 'openclaw/plugin-sdk';
|
|
2
2
|
import { generateReqId, WSClient } from '@wecom/aibot-node-sdk';
|
|
3
3
|
import { fileTypeFromBuffer } from 'file-type';
|
|
4
4
|
import os from 'node:os';
|
|
@@ -424,18 +424,19 @@ function isGroupSenderAllowed(params) {
|
|
|
424
424
|
function checkGroupPolicy(params) {
|
|
425
425
|
const { chatId, senderId, account, config, runtime } = params;
|
|
426
426
|
const wecomConfig = (config.channels?.[CHANNEL_ID] ?? {});
|
|
427
|
-
const defaultGroupPolicy =
|
|
428
|
-
const
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
427
|
+
const defaultGroupPolicy = config.channels?.[CHANNEL_ID]?.groupPolicy;
|
|
428
|
+
const groupPolicy = account.config.groupPolicy ?? defaultGroupPolicy ?? "open";
|
|
429
|
+
// const { groupPolicy, providerMissingFallbackApplied } = resolveOpenProviderRuntimeGroupPolicy({
|
|
430
|
+
// providerConfigPresent: config.channels?.[CHANNEL_ID] !== undefined,
|
|
431
|
+
// groupPolicy: wecomConfig.groupPolicy,
|
|
432
|
+
// defaultGroupPolicy,
|
|
433
|
+
// });
|
|
434
|
+
// warnMissingProviderGroupPolicyFallbackOnce({
|
|
435
|
+
// providerMissingFallbackApplied,
|
|
436
|
+
// providerKey: CHANNEL_ID,
|
|
437
|
+
// accountId: account.accountId,
|
|
438
|
+
// log: (msg) => runtime.log?.(msg),
|
|
439
|
+
// });
|
|
439
440
|
const groupAllowFrom = wecomConfig.groupAllowFrom ?? [];
|
|
440
441
|
const groupAllowed = isWeComGroupAllowed({
|
|
441
442
|
groupPolicy,
|
|
@@ -689,7 +690,7 @@ function createPersistentReqIdStore(accountId, options) {
|
|
|
689
690
|
}
|
|
690
691
|
catch (error) {
|
|
691
692
|
// 磁盘写入失败不影响内存使用,降级到纯内存模式
|
|
692
|
-
console.error(`[WeCom] reqid-store: flush to disk failed: ${String(error)}`);
|
|
693
|
+
// console.error(`[WeCom] reqid-store: flush to disk failed: ${String(error)}`);
|
|
693
694
|
}
|
|
694
695
|
}
|
|
695
696
|
// ========== 公开 API ==========
|
|
@@ -1497,7 +1498,7 @@ async function sendWeComMessage({ to, content, accountId, }) {
|
|
|
1497
1498
|
console.log(`[WeCom] sendWeComMessage: ${JSON.stringify({ to, content, accountId })}`);
|
|
1498
1499
|
// 获取 WSClient 实例
|
|
1499
1500
|
const wsClient = getWeComWebSocket(resolvedAccountId);
|
|
1500
|
-
if (!wsClient
|
|
1501
|
+
if (!wsClient) {
|
|
1501
1502
|
throw new Error(`WSClient not connected for account ${resolvedAccountId}`);
|
|
1502
1503
|
}
|
|
1503
1504
|
// 使用 SDK 的 sendMessage 主动发送 markdown 消息
|
|
@@ -1534,8 +1535,11 @@ const wecomPlugin = {
|
|
|
1534
1535
|
idLabel: "wecomUserId",
|
|
1535
1536
|
normalizeAllowEntry: (entry) => entry.replace(new RegExp(`^(${CHANNEL_ID}|user):`, "i"), "").trim(),
|
|
1536
1537
|
notifyApproval: async ({ cfg, id }) => {
|
|
1537
|
-
//
|
|
1538
|
-
//
|
|
1538
|
+
// sendWeComMessage({
|
|
1539
|
+
// to: id,
|
|
1540
|
+
// content: " pairing approved",
|
|
1541
|
+
// accountId: cfg.accountId,
|
|
1542
|
+
// });
|
|
1539
1543
|
console.log(`[WeCom] Pairing approved for user: ${id}`);
|
|
1540
1544
|
},
|
|
1541
1545
|
},
|
|
@@ -1615,7 +1619,7 @@ const wecomPlugin = {
|
|
|
1615
1619
|
normalizeEntry: (raw) => raw.replace(new RegExp(`^${CHANNEL_ID}:`, "i"), "").trim(),
|
|
1616
1620
|
};
|
|
1617
1621
|
},
|
|
1618
|
-
collectWarnings: ({ account }) => {
|
|
1622
|
+
collectWarnings: ({ account, cfg }) => {
|
|
1619
1623
|
const warnings = [];
|
|
1620
1624
|
// DM 策略警告
|
|
1621
1625
|
const dmPolicy = account.config.dmPolicy ?? "pairing";
|
|
@@ -1626,12 +1630,13 @@ const wecomPlugin = {
|
|
|
1626
1630
|
}
|
|
1627
1631
|
}
|
|
1628
1632
|
// 群组策略警告
|
|
1629
|
-
const defaultGroupPolicy =
|
|
1630
|
-
const
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1633
|
+
const defaultGroupPolicy = cfg.channels?.defaults?.groupPolicy;
|
|
1634
|
+
const groupPolicy = account.config.groupPolicy ?? defaultGroupPolicy ?? "open";
|
|
1635
|
+
// const { groupPolicy } = resolveOpenProviderRuntimeGroupPolicy({
|
|
1636
|
+
// providerConfigPresent: true,
|
|
1637
|
+
// groupPolicy: account.config.groupPolicy,
|
|
1638
|
+
// defaultGroupPolicy,
|
|
1639
|
+
// });
|
|
1635
1640
|
if (groupPolicy === "open") {
|
|
1636
1641
|
warnings.push(`- 企业微信群组:groupPolicy="open" 允许所有群组中的成员触发。设置 channels.${CHANNEL_ID}.groupPolicy="allowlist" + channels.${CHANNEL_ID}.groupAllowFrom 来限制群组。`);
|
|
1637
1642
|
}
|