@openclaw-china/feishu-china 2026.3.12 → 2026.3.18
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.js +57 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5631,6 +5631,7 @@ var CHANNEL_ORDER = [
|
|
|
5631
5631
|
"qqbot",
|
|
5632
5632
|
"wecom",
|
|
5633
5633
|
"wecom-app",
|
|
5634
|
+
"wecom-kf",
|
|
5634
5635
|
"feishu-china"
|
|
5635
5636
|
];
|
|
5636
5637
|
var CHANNEL_DISPLAY_LABELS = {
|
|
@@ -5638,6 +5639,7 @@ var CHANNEL_DISPLAY_LABELS = {
|
|
|
5638
5639
|
"feishu-china": "Feishu\uFF08\u98DE\u4E66\uFF09",
|
|
5639
5640
|
wecom: "WeCom\uFF08\u4F01\u4E1A\u5FAE\u4FE1-\u667A\u80FD\u673A\u5668\u4EBA\uFF09",
|
|
5640
5641
|
"wecom-app": "WeCom App\uFF08\u81EA\u5EFA\u5E94\u7528-\u53EF\u63A5\u5165\u5FAE\u4FE1\uFF09",
|
|
5642
|
+
"wecom-kf": "WeCom KF\uFF08\u5FAE\u4FE1\u5BA2\u670D\uFF09",
|
|
5641
5643
|
qqbot: "QQBot\uFF08QQ \u673A\u5668\u4EBA\uFF09"
|
|
5642
5644
|
};
|
|
5643
5645
|
var CHANNEL_GUIDE_LINKS = {
|
|
@@ -5645,6 +5647,7 @@ var CHANNEL_GUIDE_LINKS = {
|
|
|
5645
5647
|
"feishu-china": "https://github.com/BytePioneer-AI/openclaw-china/blob/main/README.md",
|
|
5646
5648
|
wecom: `${GUIDES_BASE}/wecom/configuration.md`,
|
|
5647
5649
|
"wecom-app": `${GUIDES_BASE}/wecom-app/configuration.md`,
|
|
5650
|
+
"wecom-kf": "https://github.com/BytePioneer-AI/openclaw-china/blob/main/extensions/wecom-kf/README.md",
|
|
5648
5651
|
qqbot: `${GUIDES_BASE}/qqbot/configuration.md`
|
|
5649
5652
|
};
|
|
5650
5653
|
var CHINA_CLI_STATE_KEY = /* @__PURE__ */ Symbol.for("@openclaw-china/china-cli-state");
|
|
@@ -5853,6 +5856,8 @@ function isChannelConfigured(cfg, channelId) {
|
|
|
5853
5856
|
return hasWecomWsCredentialPair(channelCfg);
|
|
5854
5857
|
case "wecom-app":
|
|
5855
5858
|
return hasTokenPair(channelCfg);
|
|
5859
|
+
case "wecom-kf":
|
|
5860
|
+
return hasNonEmptyString(channelCfg.corpId) && hasNonEmptyString(channelCfg.corpSecret) && hasNonEmptyString(channelCfg.token) && hasNonEmptyString(channelCfg.encodingAESKey);
|
|
5856
5861
|
default:
|
|
5857
5862
|
return false;
|
|
5858
5863
|
}
|
|
@@ -6109,6 +6114,55 @@ async function configureWecomApp(prompter, cfg) {
|
|
|
6109
6114
|
patch.asr = asr;
|
|
6110
6115
|
return mergeChannelConfig(cfg, "wecom-app", patch);
|
|
6111
6116
|
}
|
|
6117
|
+
async function configureWecomKf(prompter, cfg) {
|
|
6118
|
+
section("\u914D\u7F6E WeCom KF\uFF08\u5FAE\u4FE1\u5BA2\u670D\uFF09");
|
|
6119
|
+
showGuideLink("wecom-kf");
|
|
6120
|
+
const existing = getChannelConfig(cfg, "wecom-kf");
|
|
6121
|
+
const webhookPath = await prompter.askText({
|
|
6122
|
+
label: "Webhook \u8DEF\u5F84\uFF08\u9ED8\u8BA4 /wecom-kf\uFF09",
|
|
6123
|
+
defaultValue: toTrimmedString(existing.webhookPath) ?? "/wecom-kf",
|
|
6124
|
+
required: true
|
|
6125
|
+
});
|
|
6126
|
+
const token = await prompter.askSecret({
|
|
6127
|
+
label: "\u5FAE\u4FE1\u5BA2\u670D\u56DE\u8C03 Token",
|
|
6128
|
+
existingValue: toTrimmedString(existing.token),
|
|
6129
|
+
required: true
|
|
6130
|
+
});
|
|
6131
|
+
const encodingAESKey = await prompter.askSecret({
|
|
6132
|
+
label: "\u5FAE\u4FE1\u5BA2\u670D\u56DE\u8C03 EncodingAESKey",
|
|
6133
|
+
existingValue: toTrimmedString(existing.encodingAESKey),
|
|
6134
|
+
required: true
|
|
6135
|
+
});
|
|
6136
|
+
const corpId = await prompter.askText({
|
|
6137
|
+
label: "corpId",
|
|
6138
|
+
defaultValue: toTrimmedString(existing.corpId),
|
|
6139
|
+
required: true
|
|
6140
|
+
});
|
|
6141
|
+
const corpSecret = await prompter.askSecret({
|
|
6142
|
+
label: "\u5FAE\u4FE1\u5BA2\u670D Secret",
|
|
6143
|
+
existingValue: toTrimmedString(existing.corpSecret),
|
|
6144
|
+
required: true
|
|
6145
|
+
});
|
|
6146
|
+
const openKfId = await prompter.askText({
|
|
6147
|
+
label: "open_kfid",
|
|
6148
|
+
defaultValue: toTrimmedString(existing.openKfId),
|
|
6149
|
+
required: true
|
|
6150
|
+
});
|
|
6151
|
+
const welcomeText = await prompter.askText({
|
|
6152
|
+
label: "\u6B22\u8FCE\u8BED\uFF08\u53EF\u9009\uFF09",
|
|
6153
|
+
defaultValue: toTrimmedString(existing.welcomeText),
|
|
6154
|
+
required: false
|
|
6155
|
+
});
|
|
6156
|
+
return mergeChannelConfig(cfg, "wecom-kf", {
|
|
6157
|
+
webhookPath,
|
|
6158
|
+
token,
|
|
6159
|
+
encodingAESKey,
|
|
6160
|
+
corpId,
|
|
6161
|
+
corpSecret,
|
|
6162
|
+
openKfId,
|
|
6163
|
+
welcomeText: welcomeText || void 0
|
|
6164
|
+
});
|
|
6165
|
+
}
|
|
6112
6166
|
async function configureQQBot(prompter, cfg) {
|
|
6113
6167
|
section("\u914D\u7F6E QQBot\uFF08QQ \u673A\u5668\u4EBA\uFF09");
|
|
6114
6168
|
showGuideLink("qqbot");
|
|
@@ -6165,6 +6219,8 @@ async function configureSingleChannel(channel, prompter, cfg) {
|
|
|
6165
6219
|
return configureWecom(prompter, cfg);
|
|
6166
6220
|
case "wecom-app":
|
|
6167
6221
|
return configureWecomApp(prompter, cfg);
|
|
6222
|
+
case "wecom-kf":
|
|
6223
|
+
return configureWecomKf(prompter, cfg);
|
|
6168
6224
|
case "qqbot":
|
|
6169
6225
|
return configureQQBot(prompter, cfg);
|
|
6170
6226
|
default:
|
|
@@ -6305,6 +6361,7 @@ var SUPPORTED_CHANNELS = [
|
|
|
6305
6361
|
"feishu-china",
|
|
6306
6362
|
"wecom",
|
|
6307
6363
|
"wecom-app",
|
|
6364
|
+
"wecom-kf",
|
|
6308
6365
|
"qqbot"
|
|
6309
6366
|
];
|
|
6310
6367
|
var CHINA_INSTALL_HINT_SHOWN_KEY = /* @__PURE__ */ Symbol.for("@openclaw-china/china-install-hint-shown");
|