botmux 2.48.1 → 2.48.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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +23 -4
- package/dist/cli.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +10 -6
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +24 -2
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/federation-spoke-api.d.ts +10 -4
- package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
- package/dist/dashboard/federation-spoke-api.js +38 -11
- package/dist/dashboard/federation-spoke-api.js.map +1 -1
- package/dist/dashboard/web/app.d.ts +1 -1
- package/dist/dashboard/web/app.d.ts.map +1 -1
- package/dist/dashboard/web/app.js +36 -0
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard-web/app.js +101 -101
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +37 -2
- package/dist/im/lark/client.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +5 -2
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +7 -4
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA87GA;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,qBAAqB,EAAE,SAAS,CAAC,EAC9F,KAAK,EAAE,MAAM,EACb,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,2BAA2B,EAAE,UAAU,GAAG,IAAI,CAAC,GACzF,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA+F7B"}
|
package/dist/cli.js
CHANGED
|
@@ -493,15 +493,33 @@ async function obtainCredentials(rl) {
|
|
|
493
493
|
}
|
|
494
494
|
return { ok: true, appId, appSecret, brand: 'feishu' };
|
|
495
495
|
}
|
|
496
|
+
/**
|
|
497
|
+
* 用指定应用凭证把 open_id (ou_) 解析成 union_id (on_,跨应用稳定)。
|
|
498
|
+
* 查询失败(无 contact 权限 / API 错误)则 fallback 返回原 open_id。
|
|
499
|
+
*/
|
|
500
|
+
async function resolveOpenIdToUnionId(appId, appSecret, openId) {
|
|
501
|
+
try {
|
|
502
|
+
const { Client } = await import('@larksuiteoapi/node-sdk');
|
|
503
|
+
const client = new Client({ appId, appSecret });
|
|
504
|
+
const res = await client.contact.v3.user.get({
|
|
505
|
+
path: { user_id: openId },
|
|
506
|
+
params: { user_id_type: 'open_id' },
|
|
507
|
+
});
|
|
508
|
+
if (res.code === 0 && res.data?.user?.union_id)
|
|
509
|
+
return res.data.user.union_id;
|
|
510
|
+
}
|
|
511
|
+
catch { /* fallback */ }
|
|
512
|
+
return openId;
|
|
513
|
+
}
|
|
496
514
|
/**
|
|
497
515
|
* 手动建 bot 时(没有扫码人 open_id)必须指定至少一个 owner.
|
|
498
|
-
*
|
|
516
|
+
* 循环追问直到给出合法条目(邮箱、union_id on_xxx 或 open_id ou_xxx),拒绝裸邮箱前缀与空输入.
|
|
499
517
|
* setup 不允许没有 owner —— 没 owner 的配置一旦叠加 allowedChatGroups 即成权限黑洞.
|
|
500
518
|
*/
|
|
501
519
|
async function promptRequiredOwner(rl) {
|
|
502
520
|
printInputHelp('管理员 (owner)', [
|
|
503
|
-
'
|
|
504
|
-
'
|
|
521
|
+
'必填。至少一个能操作机器人的管理员,多个值用逗号分隔。',
|
|
522
|
+
'推荐格式(优先级高到低):完整邮箱(alice@example.com)> union_id(on_xxx,跨应用稳定)> open_id(ou_xxx,仅限同一应用)。',
|
|
505
523
|
'注意:必须是完整邮箱,邮箱前缀(如 alice)无法解析、不接受。',
|
|
506
524
|
]);
|
|
507
525
|
for (;;) {
|
|
@@ -573,11 +591,12 @@ async function promptBotConfig(rl) {
|
|
|
573
591
|
bot.model = modelChoice;
|
|
574
592
|
}
|
|
575
593
|
// 扫码场景默认填扫码人自己 (registerApp 返回里有 open_id), 天然就是 owner.
|
|
594
|
+
// 优先解析成 union_id (on_,跨应用稳定);失败则 fallback 到 open_id (ou_)。
|
|
576
595
|
// 手动 fallback 场景没 open_id —— 必须显式指定 owner, 否则配置无 owner:
|
|
577
596
|
// allowedUsers 为空时虽然"全开放", 但一旦后续加了 allowedChatGroups 就会变成
|
|
578
597
|
// "群成员能对话却没人能做敏感操作 / 用 /grant". setup 阶段强制收口, 不允许没 owner.
|
|
579
598
|
if (creds.userOpenId) {
|
|
580
|
-
bot.allowedUsers = [creds.userOpenId];
|
|
599
|
+
bot.allowedUsers = [await resolveOpenIdToUnionId(creds.appId, creds.appSecret, creds.userOpenId)];
|
|
581
600
|
}
|
|
582
601
|
else {
|
|
583
602
|
bot.allowedUsers = await promptRequiredOwner(rl);
|