botmux 2.102.0 → 2.103.0
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 +9 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +141 -6
- package/dist/cli.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +28 -0
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +20 -0
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/feishu-login.d.ts +64 -0
- package/dist/dashboard/feishu-login.d.ts.map +1 -0
- package/dist/dashboard/feishu-login.js +99 -0
- package/dist/dashboard/feishu-login.js.map +1 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +108 -0
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +4 -1
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +22 -2
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard-web/app.js +6 -6
- package/dist/dashboard-web/chunks/bot-defaults-page-ZVBKVYIG.js +380 -0
- package/dist/dashboard-web/chunks/{chunk-DWFMPIAQ.js → chunk-HC7ANVX7.js} +5 -5
- package/dist/dashboard-web/chunks/{chunk-NC77G2OB.js → chunk-NNXPEJ7S.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-BW6WO7P5.js → connectors-POZADN75.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-UTXUVV2M.js → groups-page-UQFQ6DRE.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-IW3KNMG4.js → insights-page-ATW2W5KP.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-RO6R26AZ.js → overview-page-Z7OV54XU.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-5DYKR2I5.js → roles-page-4BJVXK2E.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-WUZP3UPF.js → schedules-XLETZ2EP.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-GWZ4GKSG.js → sessions-page-RMMQUGXJ.js} +1 -1
- package/dist/dashboard-web/chunks/{settings-page-HJH6HQ7D.js → settings-page-PWKI4TWF.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-ATVGKR5I.js → skills-page-SH7KUD45.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-JVC73TTF.js → team-federation-page-JAJXFLXA.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-YCZTOJUS.js → workflows-FRJ2DJAO.js} +1 -1
- package/dist/dashboard-web/style.css +57 -0
- package/dist/dashboard.js +78 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/utils/bot-routing.d.ts +26 -3
- package/dist/utils/bot-routing.d.ts.map +1 -1
- package/dist/utils/bot-routing.js +38 -4
- package/dist/utils/bot-routing.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-YAHNXFBC.js +0 -370
|
@@ -34,6 +34,14 @@ export interface BotOnboardingSnapshot {
|
|
|
34
34
|
cliId?: string;
|
|
35
35
|
workingDir?: string;
|
|
36
36
|
addedBotIndex?: number;
|
|
37
|
+
/**
|
|
38
|
+
* 新 bot 是否已自动上线(`botmux start-bot`,无需整组 botmux restart)。
|
|
39
|
+
* true = 已拉起单个 daemon 进程并开始收飞书消息;false = 尝试失败(回退到
|
|
40
|
+
* 「请重启」提示);undefined = 未尝试(无 startBotLive 注入,如单测)。
|
|
41
|
+
*/
|
|
42
|
+
liveStarted?: boolean;
|
|
43
|
+
/** 自动上线的诊断信息(成功给进程名,失败给原因),供前端提示。 */
|
|
44
|
+
liveStartMessage?: string;
|
|
37
45
|
permission?: BotOnboardingPermission;
|
|
38
46
|
/** 自动配置失败时的手动权限步骤 (深链) */
|
|
39
47
|
remainingSteps?: RemainingStep[];
|
|
@@ -66,6 +74,19 @@ export interface BotOnboardingManagerOptions {
|
|
|
66
74
|
automateOpenPlatform?: AutomateOpenPlatformFn;
|
|
67
75
|
renderQrDataUrl?: (url: string) => string;
|
|
68
76
|
now?: () => number;
|
|
77
|
+
/**
|
|
78
|
+
* Bring the just-persisted bot online without a fleet-wide restart. Wired in
|
|
79
|
+
* the dashboard to spawn `botmux start-bot <appId>`: the new daemon
|
|
80
|
+
* self-registers, opens its Feishu WSClient long-connection, and publishes a
|
|
81
|
+
* descriptor the dashboard auto-discovers — so a newly added bot works with no
|
|
82
|
+
* `botmux restart`. Best-effort: a rejection/`ok:false` just falls back to the
|
|
83
|
+
* restart hint. Omitted in tests → onboarding behaves as before (persist only,
|
|
84
|
+
* `liveStarted` stays undefined).
|
|
85
|
+
*/
|
|
86
|
+
startBotLive?: (appId: string) => Promise<{
|
|
87
|
+
ok: boolean;
|
|
88
|
+
message?: string;
|
|
89
|
+
}>;
|
|
69
90
|
}
|
|
70
91
|
export interface BotOnboardingJob {
|
|
71
92
|
id: string;
|
|
@@ -81,7 +102,14 @@ export declare class BotOnboardingManager {
|
|
|
81
102
|
private readonly automateOpenPlatform;
|
|
82
103
|
private readonly renderQrDataUrl;
|
|
83
104
|
private readonly now;
|
|
105
|
+
private readonly startBotLive?;
|
|
84
106
|
constructor(opts: BotOnboardingManagerOptions);
|
|
107
|
+
/**
|
|
108
|
+
* Best-effort auto-start of the just-persisted bot's daemon (no fleet restart).
|
|
109
|
+
* Records the outcome on the job snapshot so the frontend shows "已自动上线"
|
|
110
|
+
* instead of the restart hint. Never throws.
|
|
111
|
+
*/
|
|
112
|
+
private runLiveStart;
|
|
85
113
|
start(input?: BotOnboardingInput): BotOnboardingJob;
|
|
86
114
|
get(id: string): BotOnboardingSnapshot | undefined;
|
|
87
115
|
private patch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-onboarding.d.ts","sourceRoot":"","sources":["../../src/dashboard/bot-onboarding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bot-onboarding.d.ts","sourceRoot":"","sources":["../../src/dashboard/bot-onboarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ export class BotOnboardingManager {
|
|
|
48
48
|
automateOpenPlatform;
|
|
49
49
|
renderQrDataUrl;
|
|
50
50
|
now;
|
|
51
|
+
startBotLive;
|
|
51
52
|
constructor(opts) {
|
|
52
53
|
this.opts = opts;
|
|
53
54
|
this.registerApp = opts.registerApp ?? tryRegisterApp;
|
|
@@ -55,6 +56,23 @@ export class BotOnboardingManager {
|
|
|
55
56
|
this.automateOpenPlatform = opts.automateOpenPlatform ?? automateOpenPlatformSetup;
|
|
56
57
|
this.renderQrDataUrl = opts.renderQrDataUrl ?? renderQrSvgDataUrl;
|
|
57
58
|
this.now = opts.now ?? (() => Date.now());
|
|
59
|
+
this.startBotLive = opts.startBotLive;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Best-effort auto-start of the just-persisted bot's daemon (no fleet restart).
|
|
63
|
+
* Records the outcome on the job snapshot so the frontend shows "已自动上线"
|
|
64
|
+
* instead of the restart hint. Never throws.
|
|
65
|
+
*/
|
|
66
|
+
async runLiveStart(id, appId) {
|
|
67
|
+
if (!this.startBotLive)
|
|
68
|
+
return;
|
|
69
|
+
try {
|
|
70
|
+
const r = await this.startBotLive(appId);
|
|
71
|
+
this.patch(id, { liveStarted: r.ok, liveStartMessage: r.message });
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
this.patch(id, { liveStarted: false, liveStartMessage: err instanceof Error ? err.message : String(err) });
|
|
75
|
+
}
|
|
58
76
|
}
|
|
59
77
|
start(input = {}) {
|
|
60
78
|
const id = `bot_${Math.random().toString(36).slice(2)}_${this.now().toString(36)}`;
|
|
@@ -154,6 +172,7 @@ export class BotOnboardingManager {
|
|
|
154
172
|
}
|
|
155
173
|
if (ownerEntry) {
|
|
156
174
|
const addedBotIndex = this.persistBot({ ...bot, allowedUsers: [ownerEntry] });
|
|
175
|
+
await this.runLiveStart(id, result.appId);
|
|
157
176
|
this.finalizePermissions(id, result.appId, result.brand, addedBotIndex, auto, 'completed');
|
|
158
177
|
}
|
|
159
178
|
else {
|
|
@@ -214,6 +233,7 @@ export class BotOnboardingManager {
|
|
|
214
233
|
// 校验通过才落盘:此刻 bot 第一次进入 bots.json, 且带着非空 allowedUsers。
|
|
215
234
|
const addedBotIndex = this.persistBot({ ...pending, allowedUsers: entries });
|
|
216
235
|
this.pendingBots.delete(id);
|
|
236
|
+
await this.runLiveStart(id, appId);
|
|
217
237
|
this.patch(id, { status: 'completed', addedBotIndex });
|
|
218
238
|
return { ok: true };
|
|
219
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-onboarding.js","sourceRoot":"","sources":["../../src/dashboard/bot-onboarding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bot-onboarding.js","sourceRoot":"","sources":["../../src/dashboard/bot-onboarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书 Web 登录态刷新 —— dashboard 侧的「扫码授权」入口,与 `botmux setup` 复用
|
|
3
|
+
* 同一份登录态(`~/.botmux/feishu-session.json`)。
|
|
4
|
+
*
|
|
5
|
+
* 背景:机器人改名走开放平台自动化(services/open-platform-rename.ts),需要一份
|
|
6
|
+
* 有效的飞书 Web 登录态;缺失/过期时改名降级为仅改 dashboard 展示名并提示
|
|
7
|
+
* 「请在服务器运行 botmux setup 重新扫码」。本 manager 把那次扫码搬进 dashboard:
|
|
8
|
+
* 用户点「扫码登录」→ 后台起 {@link prepareFeishuWebSession}(与 setup、bot
|
|
9
|
+
* onboarding 第二个二维码同一个飞书 Web QR 登录流程)→ onQrCode 渲染二维码给前端
|
|
10
|
+
* 轮询展示 → 扫码成功即写回 feishu-session.json,之后改名直接走真·改名路径。
|
|
11
|
+
*
|
|
12
|
+
* 进程边界(重要前提):当前部署模型下 dashboard 与所有 daemon **同机**
|
|
13
|
+
* (proxyToDaemon 走 127.0.0.1),feishu-session.json 是机器级共享文件——
|
|
14
|
+
* dashboard 进程写、任何 daemon 改名读,无需 per-bot / 跨机协调。因此本 manager
|
|
15
|
+
* 是**机器级单例**(不按 bot 区分),与 {@link BotOnboardingManager} 同进程、
|
|
16
|
+
* 同二维码渲染基础设施。⚠️ 若将来把 dashboard 与 daemon 拆到不同机器,这条
|
|
17
|
+
* 「同机共享文件」假设即失效:改名 daemon 读不到 dashboard 那台写的 session,
|
|
18
|
+
* 届时需把 session jar 下发到目标机、或把登录 manager 下沉到 daemon 侧
|
|
19
|
+
* (proxyToDaemon 到具体 bot 的 daemon 执行登录,写它自己机器的 session)。
|
|
20
|
+
*/
|
|
21
|
+
import { type FeishuWebSessionOptions, type FeishuWebSessionPrepareResult } from '../setup/open-platform-automation.js';
|
|
22
|
+
export type FeishuLoginStatus = 'starting' | 'awaiting_scan' | 'success' | 'failed';
|
|
23
|
+
export interface FeishuLoginSnapshot {
|
|
24
|
+
status: FeishuLoginStatus;
|
|
25
|
+
/** 二维码 SVG data URL(awaiting_scan 时有)。 */
|
|
26
|
+
qrDataUrl?: string;
|
|
27
|
+
/** 二维码大致有效期(now + maxWaitMs),供前端提示/倒计时。 */
|
|
28
|
+
expireAt?: number;
|
|
29
|
+
/** 轮询进度文案(onStatus:等待扫码 / 已扫码待确认 / 已过期)。 */
|
|
30
|
+
message?: string;
|
|
31
|
+
/** 失败原因码(qr_expired / timeout / network / login_failed / …)。 */
|
|
32
|
+
reason?: string;
|
|
33
|
+
/** 成功时的 cookie 数与来源(cache / qr_login / bytedcli_fallback)。 */
|
|
34
|
+
cookieCount?: number;
|
|
35
|
+
source?: string;
|
|
36
|
+
updatedAt: number;
|
|
37
|
+
}
|
|
38
|
+
export interface FeishuLoginManagerOptions {
|
|
39
|
+
/** 注入缝:默认 {@link prepareFeishuWebSession}。 */
|
|
40
|
+
prepareSession?: (opts: FeishuWebSessionOptions) => Promise<FeishuWebSessionPrepareResult>;
|
|
41
|
+
/** 注入缝:payload → 二维码 data URL。默认 {@link renderQrSvgDataUrl}。 */
|
|
42
|
+
renderQr?: (payload: string) => string;
|
|
43
|
+
now?: () => number;
|
|
44
|
+
/** 单次扫码等待上限(毫秒)。默认 180s。 */
|
|
45
|
+
maxWaitMs?: number;
|
|
46
|
+
}
|
|
47
|
+
export declare class FeishuLoginManager {
|
|
48
|
+
private snapshot;
|
|
49
|
+
private settled;
|
|
50
|
+
private readonly prepareSession;
|
|
51
|
+
private readonly renderQr;
|
|
52
|
+
private readonly now;
|
|
53
|
+
private readonly maxWaitMs;
|
|
54
|
+
constructor(opts?: FeishuLoginManagerOptions);
|
|
55
|
+
get(): FeishuLoginSnapshot | null;
|
|
56
|
+
/**
|
|
57
|
+
* 发起(或复用)一次扫码登录。幂等:已有进行中的登录(starting/awaiting_scan)
|
|
58
|
+
* 直接返回其快照,避免并发起多个二维码;已成功/失败则允许重新发起(换新码)。
|
|
59
|
+
*/
|
|
60
|
+
start(): FeishuLoginSnapshot;
|
|
61
|
+
private patch;
|
|
62
|
+
private run;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=feishu-login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feishu-login.d.ts","sourceRoot":"","sources":["../../src/dashboard/feishu-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EACnC,MAAM,sCAAsC,CAAC;AAI9C,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC3F,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4E;IAC3G,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,GAAE,yBAA8B;IAOhD,GAAG,IAAI,mBAAmB,GAAG,IAAI;IAIjC;;;OAGG;IACH,KAAK,IAAI,mBAAmB;IAW5B,OAAO,CAAC,KAAK;YAIC,GAAG;CAsClB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书 Web 登录态刷新 —— dashboard 侧的「扫码授权」入口,与 `botmux setup` 复用
|
|
3
|
+
* 同一份登录态(`~/.botmux/feishu-session.json`)。
|
|
4
|
+
*
|
|
5
|
+
* 背景:机器人改名走开放平台自动化(services/open-platform-rename.ts),需要一份
|
|
6
|
+
* 有效的飞书 Web 登录态;缺失/过期时改名降级为仅改 dashboard 展示名并提示
|
|
7
|
+
* 「请在服务器运行 botmux setup 重新扫码」。本 manager 把那次扫码搬进 dashboard:
|
|
8
|
+
* 用户点「扫码登录」→ 后台起 {@link prepareFeishuWebSession}(与 setup、bot
|
|
9
|
+
* onboarding 第二个二维码同一个飞书 Web QR 登录流程)→ onQrCode 渲染二维码给前端
|
|
10
|
+
* 轮询展示 → 扫码成功即写回 feishu-session.json,之后改名直接走真·改名路径。
|
|
11
|
+
*
|
|
12
|
+
* 进程边界(重要前提):当前部署模型下 dashboard 与所有 daemon **同机**
|
|
13
|
+
* (proxyToDaemon 走 127.0.0.1),feishu-session.json 是机器级共享文件——
|
|
14
|
+
* dashboard 进程写、任何 daemon 改名读,无需 per-bot / 跨机协调。因此本 manager
|
|
15
|
+
* 是**机器级单例**(不按 bot 区分),与 {@link BotOnboardingManager} 同进程、
|
|
16
|
+
* 同二维码渲染基础设施。⚠️ 若将来把 dashboard 与 daemon 拆到不同机器,这条
|
|
17
|
+
* 「同机共享文件」假设即失效:改名 daemon 读不到 dashboard 那台写的 session,
|
|
18
|
+
* 届时需把 session jar 下发到目标机、或把登录 manager 下沉到 daemon 侧
|
|
19
|
+
* (proxyToDaemon 到具体 bot 的 daemon 执行登录,写它自己机器的 session)。
|
|
20
|
+
*/
|
|
21
|
+
import { prepareFeishuWebSession, } from '../setup/open-platform-automation.js';
|
|
22
|
+
import { renderQrSvgDataUrl } from './bot-onboarding.js';
|
|
23
|
+
import { logger } from '../utils/logger.js';
|
|
24
|
+
export class FeishuLoginManager {
|
|
25
|
+
snapshot = null;
|
|
26
|
+
settled = true;
|
|
27
|
+
prepareSession;
|
|
28
|
+
renderQr;
|
|
29
|
+
now;
|
|
30
|
+
maxWaitMs;
|
|
31
|
+
constructor(opts = {}) {
|
|
32
|
+
this.prepareSession = opts.prepareSession ?? prepareFeishuWebSession;
|
|
33
|
+
this.renderQr = opts.renderQr ?? renderQrSvgDataUrl;
|
|
34
|
+
this.now = opts.now ?? (() => Date.now());
|
|
35
|
+
this.maxWaitMs = opts.maxWaitMs ?? 180_000;
|
|
36
|
+
}
|
|
37
|
+
get() {
|
|
38
|
+
return this.snapshot ? { ...this.snapshot } : null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 发起(或复用)一次扫码登录。幂等:已有进行中的登录(starting/awaiting_scan)
|
|
42
|
+
* 直接返回其快照,避免并发起多个二维码;已成功/失败则允许重新发起(换新码)。
|
|
43
|
+
*/
|
|
44
|
+
start() {
|
|
45
|
+
if (!this.settled && this.snapshot
|
|
46
|
+
&& (this.snapshot.status === 'starting' || this.snapshot.status === 'awaiting_scan')) {
|
|
47
|
+
return { ...this.snapshot };
|
|
48
|
+
}
|
|
49
|
+
this.settled = false;
|
|
50
|
+
this.snapshot = { status: 'starting', updatedAt: this.now() };
|
|
51
|
+
void this.run();
|
|
52
|
+
return { ...this.snapshot };
|
|
53
|
+
}
|
|
54
|
+
patch(p) {
|
|
55
|
+
this.snapshot = { ...(this.snapshot ?? { status: 'starting', updatedAt: 0 }), ...p, updatedAt: this.now() };
|
|
56
|
+
}
|
|
57
|
+
async run() {
|
|
58
|
+
try {
|
|
59
|
+
const result = await this.prepareSession({
|
|
60
|
+
maxWaitMs: this.maxWaitMs,
|
|
61
|
+
onQrCode: ({ qrPayload }) => {
|
|
62
|
+
this.patch({
|
|
63
|
+
status: 'awaiting_scan',
|
|
64
|
+
qrDataUrl: this.renderQr(qrPayload),
|
|
65
|
+
expireAt: this.now() + this.maxWaitMs,
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
onStatus: (message) => { this.patch({ message }); },
|
|
69
|
+
});
|
|
70
|
+
if (result.ok) {
|
|
71
|
+
this.patch({
|
|
72
|
+
status: 'success',
|
|
73
|
+
cookieCount: result.cookieCount,
|
|
74
|
+
source: result.source,
|
|
75
|
+
qrDataUrl: undefined,
|
|
76
|
+
message: undefined,
|
|
77
|
+
reason: undefined,
|
|
78
|
+
});
|
|
79
|
+
logger.info(`[feishu-login] session ready via ${result.source} (${result.cookieCount} cookies)`);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.patch({ status: 'failed', reason: result.reason, message: result.message, qrDataUrl: undefined });
|
|
83
|
+
logger.warn(`[feishu-login] failed: ${result.reason} — ${result.message}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
this.patch({
|
|
88
|
+
status: 'failed',
|
|
89
|
+
reason: 'unexpected',
|
|
90
|
+
message: err instanceof Error ? err.message : String(err),
|
|
91
|
+
qrDataUrl: undefined,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
this.settled = true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=feishu-login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feishu-login.js","sourceRoot":"","sources":["../../src/dashboard/feishu-login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-defaults.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/bot-defaults.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqBrD,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtE;
|
|
1
|
+
{"version":3,"file":"bot-defaults.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/bot-defaults.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqBrD,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtE;AAyJD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAqCD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAonDnE"}
|
|
@@ -20,6 +20,95 @@ let selectedAppId = null;
|
|
|
20
20
|
export function displayCliId(bot, sessionFallback) {
|
|
21
21
|
return typeof bot?.cliId === 'string' && bot.cliId ? bot.cliId : sessionFallback;
|
|
22
22
|
}
|
|
23
|
+
// 飞书 Web 登录态刷新 modal:POST /api/feishu-login/start 起扫码流程,轮询
|
|
24
|
+
// /api/feishu-login/status 展示二维码/进度,扫码成功后回调 onSuccess(重试改名)。
|
|
25
|
+
// 机器级单例流程,同一时刻只需一个 overlay。
|
|
26
|
+
function openFeishuLoginModal(onSuccess) {
|
|
27
|
+
document.querySelector('.feishu-login-overlay')?.remove();
|
|
28
|
+
const overlay = document.createElement('div');
|
|
29
|
+
overlay.className = 'feishu-login-overlay';
|
|
30
|
+
overlay.innerHTML = `
|
|
31
|
+
<div class="feishu-login-modal" role="dialog" aria-modal="true">
|
|
32
|
+
<button type="button" class="feishu-login-close" data-close aria-label="${escapeHtml(t('feishuLogin.close'))}">✕</button>
|
|
33
|
+
<h3 class="feishu-login-title">${escapeHtml(t('feishuLogin.title'))}</h3>
|
|
34
|
+
<p class="feishu-login-hint" data-hint>${escapeHtml(t('feishuLogin.starting'))}</p>
|
|
35
|
+
<div class="feishu-login-qr" data-qr></div>
|
|
36
|
+
<div class="feishu-login-actions">
|
|
37
|
+
<button type="button" class="primary" data-retry hidden>${escapeHtml(t('feishuLogin.retry'))}</button>
|
|
38
|
+
</div>
|
|
39
|
+
</div>`;
|
|
40
|
+
document.body.appendChild(overlay);
|
|
41
|
+
const hintEl = overlay.querySelector('[data-hint]');
|
|
42
|
+
const qrEl = overlay.querySelector('[data-qr]');
|
|
43
|
+
const retryBtn = overlay.querySelector('[data-retry]');
|
|
44
|
+
let timer = null;
|
|
45
|
+
const stopTimer = () => { if (timer !== null) {
|
|
46
|
+
window.clearInterval(timer);
|
|
47
|
+
timer = null;
|
|
48
|
+
} };
|
|
49
|
+
const cleanup = () => { stopTimer(); overlay.remove(); };
|
|
50
|
+
overlay.addEventListener('click', (e) => {
|
|
51
|
+
const el = e.target;
|
|
52
|
+
if (el === overlay || el.closest('[data-close]'))
|
|
53
|
+
cleanup();
|
|
54
|
+
});
|
|
55
|
+
function render(login) {
|
|
56
|
+
if (!login)
|
|
57
|
+
return 'active';
|
|
58
|
+
if (login.status === 'awaiting_scan' && login.qrDataUrl) {
|
|
59
|
+
qrEl.innerHTML = `<img class="qr-image" src="${login.qrDataUrl}" alt="${escapeHtml(t('feishuLogin.qrAlt'))}">`;
|
|
60
|
+
hintEl.textContent = login.message || t('feishuLogin.scanHint');
|
|
61
|
+
retryBtn.hidden = true;
|
|
62
|
+
return 'active';
|
|
63
|
+
}
|
|
64
|
+
if (login.status === 'starting') {
|
|
65
|
+
hintEl.textContent = login.message || t('feishuLogin.starting');
|
|
66
|
+
return 'active';
|
|
67
|
+
}
|
|
68
|
+
if (login.status === 'success') {
|
|
69
|
+
stopTimer();
|
|
70
|
+
qrEl.innerHTML = '';
|
|
71
|
+
hintEl.textContent = t('feishuLogin.success');
|
|
72
|
+
window.setTimeout(() => { cleanup(); onSuccess(); }, 900);
|
|
73
|
+
return 'done';
|
|
74
|
+
}
|
|
75
|
+
// failed
|
|
76
|
+
stopTimer();
|
|
77
|
+
qrEl.innerHTML = '';
|
|
78
|
+
hintEl.textContent = t('feishuLogin.failed', { reason: login.message || login.reason || '' });
|
|
79
|
+
retryBtn.hidden = false;
|
|
80
|
+
return 'done';
|
|
81
|
+
}
|
|
82
|
+
async function poll() {
|
|
83
|
+
try {
|
|
84
|
+
const r = await fetch('/api/feishu-login/status');
|
|
85
|
+
const body = await r.json().catch(() => ({}));
|
|
86
|
+
render(body.login);
|
|
87
|
+
}
|
|
88
|
+
catch { /* transient — keep polling */ }
|
|
89
|
+
}
|
|
90
|
+
async function begin() {
|
|
91
|
+
stopTimer();
|
|
92
|
+
hintEl.textContent = t('feishuLogin.starting');
|
|
93
|
+
qrEl.innerHTML = '';
|
|
94
|
+
retryBtn.hidden = true;
|
|
95
|
+
let phase = 'active';
|
|
96
|
+
try {
|
|
97
|
+
const r = await fetch('/api/feishu-login/start', { method: 'POST' });
|
|
98
|
+
const body = await r.json().catch(() => ({}));
|
|
99
|
+
phase = render(body.login);
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
hintEl.textContent = t('feishuLogin.failed', { reason: e?.message ?? String(e) });
|
|
103
|
+
retryBtn.hidden = false;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (phase === 'active' && timer === null)
|
|
107
|
+
timer = window.setInterval(() => void poll(), 1500);
|
|
108
|
+
}
|
|
109
|
+
retryBtn.addEventListener('click', () => void begin());
|
|
110
|
+
void begin();
|
|
111
|
+
}
|
|
23
112
|
const botProfileRoleCache = new Map();
|
|
24
113
|
/** Fallback for old /api/bots payloads: infer from the bot's recent sessions. */
|
|
25
114
|
function cliIdOf(appId) {
|
|
@@ -260,6 +349,7 @@ export function wireBotDefaultsPage(root) {
|
|
|
260
349
|
${cli ? `<span class="mate-role">${escapeHtml(cli)}</span>` : ''}
|
|
261
350
|
<code>${escapeHtml(b.larkAppId)}</code>
|
|
262
351
|
<small class="bd-name-status oncall-status" data-name-status></small>
|
|
352
|
+
<button type="button" class="bd-feishu-login" data-action="feishu-login" hidden>${t('feishuLogin.entry')}</button>
|
|
263
353
|
</div>
|
|
264
354
|
<div class="bd-profile-meta bd-meta">
|
|
265
355
|
<small class="bd-meta-ok">● ${t('botDefaults.metaOnline')}</small>
|
|
@@ -1017,6 +1107,7 @@ export function wireBotDefaultsPage(root) {
|
|
|
1017
1107
|
const nameSaveBtn = card.querySelector('button[data-action=save-bot-name]');
|
|
1018
1108
|
const nameCancelBtn = card.querySelector('button[data-action=cancel-bot-name]');
|
|
1019
1109
|
const nameStatusEl = card.querySelector('[data-name-status]');
|
|
1110
|
+
const feishuLoginBtn = card.querySelector('button[data-action=feishu-login]');
|
|
1020
1111
|
function setNameEditMode(on) {
|
|
1021
1112
|
if (!nameRowEl || !nameEditorEl)
|
|
1022
1113
|
return;
|
|
@@ -1079,12 +1170,18 @@ export function wireBotDefaultsPage(root) {
|
|
|
1079
1170
|
if (body.mode === 'feishu') {
|
|
1080
1171
|
nameStatusEl.textContent = `✓ ${t('botDefaults.renameOkFeishu')}`;
|
|
1081
1172
|
nameStatusEl.classList.add('hint-ok');
|
|
1173
|
+
if (feishuLoginBtn)
|
|
1174
|
+
feishuLoginBtn.hidden = true;
|
|
1082
1175
|
}
|
|
1083
1176
|
else {
|
|
1084
1177
|
nameStatusEl.textContent = `⚠ ${renameWarningText(String(body.warning ?? ''), body.message)}`;
|
|
1085
1178
|
nameStatusEl.classList.add('hint-warn-inline');
|
|
1086
1179
|
if (typeof body.message === 'string' && body.message)
|
|
1087
1180
|
nameStatusEl.title = body.message;
|
|
1181
|
+
// 登录态缺失/过期 → 亮出「扫码登录」,让用户当场刷登录态后重试真改名。
|
|
1182
|
+
const needsLogin = body.warning === 'no_session' || body.warning === 'session_expired';
|
|
1183
|
+
if (feishuLoginBtn)
|
|
1184
|
+
feishuLoginBtn.hidden = !needsLogin;
|
|
1088
1185
|
}
|
|
1089
1186
|
}
|
|
1090
1187
|
else {
|
|
@@ -1110,9 +1207,20 @@ export function wireBotDefaultsPage(root) {
|
|
|
1110
1207
|
nameStatusEl.textContent = '';
|
|
1111
1208
|
nameStatusEl.className = 'bd-name-status oncall-status';
|
|
1112
1209
|
}
|
|
1210
|
+
if (feishuLoginBtn)
|
|
1211
|
+
feishuLoginBtn.hidden = true;
|
|
1113
1212
|
setNameEditMode(true);
|
|
1114
1213
|
});
|
|
1115
1214
|
}
|
|
1215
|
+
// 「扫码登录飞书」→ 弹二维码 modal,扫码成功后自动重试真改名。
|
|
1216
|
+
if (feishuLoginBtn) {
|
|
1217
|
+
feishuLoginBtn.addEventListener('click', () => {
|
|
1218
|
+
openFeishuLoginModal(() => {
|
|
1219
|
+
feishuLoginBtn.hidden = true;
|
|
1220
|
+
void submitRename();
|
|
1221
|
+
});
|
|
1222
|
+
});
|
|
1223
|
+
}
|
|
1116
1224
|
if (nameCancelBtn)
|
|
1117
1225
|
nameCancelBtn.addEventListener('click', () => setNameEditMode(false));
|
|
1118
1226
|
if (nameSaveBtn)
|