@modelzen/feishu-codex-bridge 0.3.12-test.1 → 0.3.12-test.3
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.js +81 -75
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -9471,7 +9471,7 @@ function createOrchestrator(channel, cfg, fallbackCwd) {
|
|
|
9471
9471
|
}
|
|
9472
9472
|
const ts = turnSession(msg.chatId, project, msg.senderId);
|
|
9473
9473
|
if (cmd === "model") {
|
|
9474
|
-
postModelCard(msg, ts.sessionKey);
|
|
9474
|
+
postModelCard(msg, ts.sessionKey, false);
|
|
9475
9475
|
return;
|
|
9476
9476
|
}
|
|
9477
9477
|
if (cmd === "compact") {
|
|
@@ -9505,7 +9505,7 @@ function createOrchestrator(channel, cfg, fallbackCwd) {
|
|
|
9505
9505
|
}
|
|
9506
9506
|
const ts = turnSession(msg.threadId, project, msg.senderId);
|
|
9507
9507
|
if (cmd === "model") {
|
|
9508
|
-
postModelCard(msg, ts.sessionKey);
|
|
9508
|
+
postModelCard(msg, ts.sessionKey, true);
|
|
9509
9509
|
return;
|
|
9510
9510
|
}
|
|
9511
9511
|
if (cmd === "compact") {
|
|
@@ -9911,7 +9911,7 @@ function createOrchestrator(channel, cfg, fallbackCwd) {
|
|
|
9911
9911
|
}
|
|
9912
9912
|
});
|
|
9913
9913
|
}
|
|
9914
|
-
function postModelCard(msg, sessionKey) {
|
|
9914
|
+
function postModelCard(msg, sessionKey, inThread) {
|
|
9915
9915
|
void withTrace({ chatId: msg.chatId, msgId: msg.messageId }, async () => {
|
|
9916
9916
|
try {
|
|
9917
9917
|
const [rec, project] = await Promise.all([getSession(sessionKey), getProjectByChatId(msg.chatId)]);
|
|
@@ -9929,7 +9929,7 @@ function createOrchestrator(channel, cfg, fallbackCwd) {
|
|
|
9929
9929
|
backend: be.id,
|
|
9930
9930
|
createdAt: Date.now()
|
|
9931
9931
|
};
|
|
9932
|
-
const res = await sendManagedCard(channel, msg.chatId, buildModelCard(state), msg.messageId,
|
|
9932
|
+
const res = await sendManagedCard(channel, msg.chatId, buildModelCard(state), msg.messageId, inThread);
|
|
9933
9933
|
pruneModelPending();
|
|
9934
9934
|
modelPending.set(res.messageId, state);
|
|
9935
9935
|
log.info("card", "model", { threadId: sessionKey, model: state.model, effort: state.effort });
|
|
@@ -11889,6 +11889,7 @@ function createAdminService(deps = {}) {
|
|
|
11889
11889
|
return readRecentLogs({ maxBytes: opts?.maxBytes ?? 64 * 1024 });
|
|
11890
11890
|
},
|
|
11891
11891
|
registerBot(input2) {
|
|
11892
|
+
if (deps.readonlyPreview) throw new NotWiredYetError("\u2795 \u6DFB\u52A0\u673A\u5668\u4EBA");
|
|
11892
11893
|
return registerBotFromCredentials({
|
|
11893
11894
|
appId: input2.appId,
|
|
11894
11895
|
appSecret: input2.appSecret,
|
|
@@ -11957,6 +11958,7 @@ function createAdminService(deps = {}) {
|
|
|
11957
11958
|
};
|
|
11958
11959
|
},
|
|
11959
11960
|
async registerBotByQr(opts) {
|
|
11961
|
+
if (deps.readonlyPreview) throw new NotWiredYetError("\u2795 \u6DFB\u52A0\u673A\u5668\u4EBA");
|
|
11960
11962
|
let creds;
|
|
11961
11963
|
try {
|
|
11962
11964
|
creds = await startRegistration({ signal: opts.signal, onQr: opts.onQr, onStatus: opts.onStatus });
|
|
@@ -12186,7 +12188,7 @@ async function probeAllBackends() {
|
|
|
12186
12188
|
);
|
|
12187
12189
|
}
|
|
12188
12190
|
function createReadonlyAdminService(deps = {}) {
|
|
12189
|
-
return createAdminService({ startDaemon: deps.startDaemon });
|
|
12191
|
+
return createAdminService({ startDaemon: deps.startDaemon, applyUpdate: deps.applyUpdate, readonlyPreview: true });
|
|
12190
12192
|
}
|
|
12191
12193
|
function isAlive(pid) {
|
|
12192
12194
|
try {
|
|
@@ -13400,7 +13402,7 @@ ${UI_PURE_JS}
|
|
|
13400
13402
|
bots.forEach(function (b) {
|
|
13401
13403
|
nav.appendChild(navItem({ icon: 'bot', label: botTitle(b), on: r.tab === 'bot' && r.botId === b.appId, dot: !!b.running, onClick: function () { go({ tab: 'bot', botId: b.appId }); } }));
|
|
13402
13404
|
});
|
|
13403
|
-
nav.appendChild(navItem({ icon: 'add', label: '\u6DFB\u52A0\u673A\u5668\u4EBA', add: true, onClick: function () {
|
|
13405
|
+
nav.appendChild(navItem({ icon: 'add', label: '\u6DFB\u52A0\u673A\u5668\u4EBA', add: true, onClick: function () { tryAddBot(); } }));
|
|
13404
13406
|
nav.appendChild(el('div', 'nav-sec', '\u914D\u7F6E'));
|
|
13405
13407
|
nav.appendChild(navItem({ icon: 'backend', label: '\u540E\u7AEF Agent', on: r.tab === 'backends', onClick: function () { go({ tab: 'backends' }); } }));
|
|
13406
13408
|
nav.appendChild(navItem({ icon: 'doctor', label: '\u5BBF\u4E3B\u673A\u4F53\u68C0', on: r.tab === 'doctor', onClick: function () { go({ tab: 'doctor' }); } }));
|
|
@@ -13428,7 +13430,7 @@ ${UI_PURE_JS}
|
|
|
13428
13430
|
act.textContent = '';
|
|
13429
13431
|
if (r.tab === 'overview' || r.tab === 'bot') {
|
|
13430
13432
|
var add = el('button', 'btn primary sm', '\u2795 \u6DFB\u52A0\u673A\u5668\u4EBA');
|
|
13431
|
-
add.onclick = function () {
|
|
13433
|
+
add.onclick = function () { tryAddBot(); };
|
|
13432
13434
|
act.appendChild(add);
|
|
13433
13435
|
}
|
|
13434
13436
|
}
|
|
@@ -13502,7 +13504,7 @@ ${UI_PURE_JS}
|
|
|
13502
13504
|
hero.appendChild(el('div', 'home-sub', '\u628A\u98DE\u4E66\u63A5\u5230\u672C\u673A\u7684 Codex / Claude \u2014\u2014 \u4E00\u4E2A\u7FA4\u4E00\u4E2A\u9879\u76EE\uFF0C@\u4E00\u53E5\u8BDD\u5C31\u5F00\u5E72\u3002\u591A\u673A\u5668\u4EBA\u3001\u591A\u540E\u7AEF\uFF0C\u5168\u7A0B\u8DD1\u5728\u4F60\u8FD9\u53F0\u673A\u5668\u4E0A\uFF0C\u79C1\u6709\u53EF\u63A7\u3002'));
|
|
13503
13505
|
var ctaRow = el('div', 'home-cta-row');
|
|
13504
13506
|
var primary = el('button', 'btn primary home-cta', hasBots ? '\u8FDB\u5165\u63A7\u5236\u53F0' : '\u2795 \u626B\u7801\u521B\u5EFA\u7B2C\u4E00\u4E2A\u673A\u5668\u4EBA');
|
|
13505
|
-
primary.onclick = function () { if (hasBots) go({ tab: 'overview' }); else
|
|
13507
|
+
primary.onclick = function () { if (hasBots) go({ tab: 'overview' }); else tryAddBot(); };
|
|
13506
13508
|
ctaRow.appendChild(primary);
|
|
13507
13509
|
if (hasBots) {
|
|
13508
13510
|
var sec = el('button', 'btn home-cta', '\u540E\u7AEF\u7BA1\u7406');
|
|
@@ -13953,6 +13955,10 @@ ${UI_PURE_JS}
|
|
|
13953
13955
|
} else {
|
|
13954
13956
|
var pb = el('button', 'btn sm primary', '\u25B6\uFE0F \u542F\u52A8'); pb.onclick = askStart; acts.appendChild(pb);
|
|
13955
13957
|
}
|
|
13958
|
+
// \u68C0\u67E5\u66F4\u65B0\u5165\u53E3\uFF1A\u59CB\u7EC8\u5728\uFF08\u4E0D\u7BA1\u8DD1\u6CA1\u8DD1\uFF09\u3002\u6CA1\u542F\u52A8\u65F6\u80FD\u505A\u7684\u5C31\u662F\u300C\u542F\u52A8\u300D+\u300C\u66F4\u65B0\u300D\u3002
|
|
13959
|
+
var ub = el('button', 'btn sm', '\u{1F504} \u68C0\u67E5\u66F4\u65B0'); ub.style.marginLeft = '6px';
|
|
13960
|
+
ub.onclick = function () { var bx = $('updateBody'); if (bx) { bx.textContent = '\u7248\u672C\u68C0\u67E5\u4E2D\u2026'; loadUpdate(bx); } toast('\u{1F504} \u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026'); };
|
|
13961
|
+
acts.appendChild(ub);
|
|
13956
13962
|
}
|
|
13957
13963
|
var line = el('div', 'statline');
|
|
13958
13964
|
if (d.running) line.appendChild(el('span', 'tag green', '\u2705 \u8FD0\u884C\u4E2D' + (d.pid ? ' \xB7 pid ' + d.pid : '')));
|
|
@@ -14066,7 +14072,7 @@ ${UI_PURE_JS}
|
|
|
14066
14072
|
hero.appendChild(el('div', 'fr-title', '\u6B22\u8FCE\uFF01\u8FD8\u5DEE\u6700\u540E\u4E00\u6B65\uFF1A\u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u98DE\u4E66\u673A\u5668\u4EBA'));
|
|
14067
14073
|
hero.appendChild(el('div', 'fr-sub', '\u70B9\u4E0B\u9762\u7684\u6309\u94AE\uFF0C\u7528\u98DE\u4E66\u626B\u7801\u5373\u53EF\u521B\u5EFA\u5E76\u6388\u6743\u2014\u2014\u5168\u7A0B\u5728\u8FD9\u4E2A\u7F51\u9875\u91CC\u5B8C\u6210\uFF0C\u4E0D\u7528\u78B0\u7EC8\u7AEF\u3002'));
|
|
14068
14074
|
var cta = el('button', 'btn primary fr-cta', '\u2795 \u626B\u7801\u521B\u5EFA\u7B2C\u4E00\u4E2A\u673A\u5668\u4EBA');
|
|
14069
|
-
cta.onclick = function () {
|
|
14075
|
+
cta.onclick = function () { tryAddBot(); };
|
|
14070
14076
|
hero.appendChild(cta);
|
|
14071
14077
|
box.appendChild(hero);
|
|
14072
14078
|
if (countEl) countEl.textContent = '';
|
|
@@ -14355,6 +14361,18 @@ ${UI_PURE_JS}
|
|
|
14355
14361
|
if (drawerProject) renderDrawer(drawerProject);
|
|
14356
14362
|
}
|
|
14357
14363
|
|
|
14364
|
+
// \u98DE\u4E66 applink\u300C\u6253\u5F00\u673A\u5668\u4EBA\u300D\uFF1A\u5728\u98DE\u4E66\u5BA2\u6237\u7AEF\u91CC\u76F4\u63A5\u62C9\u8D77\u4E0E\u8BE5 bot \u7684\u79C1\u804A\uFF08\u540C\u5F00\u53D1\u8005\u540E\u53F0
|
|
14365
|
+
// \u300C\u521B\u5EFA\u6210\u529F \u2192 \u6253\u5F00\u5E94\u7528\u300D\u90A3\u6761\u94FE\uFF09\u3002feishu / lark \u5404\u81EA\u57DF\u540D\u3002
|
|
14366
|
+
function botOpenLink(appId, tenant) {
|
|
14367
|
+
var host = tenant === 'lark' ? 'applink.larksuite.com' : 'applink.feishu.cn';
|
|
14368
|
+
return 'https://' + host + '/client/bot/open?appId=' + encodeURIComponent(appId || '');
|
|
14369
|
+
}
|
|
14370
|
+
function openBotBtn(appId, tenant, label) {
|
|
14371
|
+
var a = el('a', 'btn', label || '\u{1F517} \u5728\u98DE\u4E66\u4E2D\u6253\u5F00');
|
|
14372
|
+
a.href = botOpenLink(appId, tenant); a.target = '_blank'; a.rel = 'noopener';
|
|
14373
|
+
return a;
|
|
14374
|
+
}
|
|
14375
|
+
|
|
14358
14376
|
function renderBotOverview(card, b) {
|
|
14359
14377
|
var line1 = el('div', 'statline');
|
|
14360
14378
|
line1.appendChild(el('span', 'tag', b.tenant === 'lark' ? 'Lark' : '\u98DE\u4E66'));
|
|
@@ -14362,6 +14380,9 @@ ${UI_PURE_JS}
|
|
|
14362
14380
|
if (b.current) line1.appendChild(el('span', 'tag blue', '\u4E3B bot'));
|
|
14363
14381
|
if (b.active) line1.appendChild(el('span', 'tag blue', '\u6D3B\u8DC3\u96C6'));
|
|
14364
14382
|
card.appendChild(line1);
|
|
14383
|
+
var openRow = el('div'); openRow.style.marginTop = '8px';
|
|
14384
|
+
openRow.appendChild(openBotBtn(b.appId, b.tenant, '\u{1F517} \u5728\u98DE\u4E66\u4E2D\u6253\u5F00\u673A\u5668\u4EBA'));
|
|
14385
|
+
card.appendChild(openRow);
|
|
14365
14386
|
var line2 = el('div', 'statline');
|
|
14366
14387
|
if (b.running) {
|
|
14367
14388
|
line2.appendChild(el('span', 'tag green', '\u2705 bridge \u8FD0\u884C\u4E2D \xB7 pid ' + b.pid));
|
|
@@ -14579,6 +14600,21 @@ ${UI_PURE_JS}
|
|
|
14579
14600
|
var wizAutoEnabled = false; // \u65B0 bot \u662F\u5426\u5DF2\u81EA\u52A8\u52A0\u5165\u6D3B\u8DC3\u96C6\uFF08\u4E00\u6B21\u6027\uFF09
|
|
14580
14601
|
var wizRestartPrompted = false; // \u5B8C\u6210\u6B65\u662F\u5426\u5DF2\u5F39\u8FC7\u300C\u91CD\u542F\u62C9\u8D77\u300D\u786E\u8BA4\uFF08\u4E00\u6B21\u6027\uFF09
|
|
14581
14602
|
|
|
14603
|
+
// \u6DFB\u52A0\u673A\u5668\u4EBA\u662F\u5199\u64CD\u4F5C\uFF1AFeishu Bridge \u6CA1\u5728\u8DD1\u65F6\u63A7\u5236\u53F0\u4E3A\u53EA\u8BFB\uFF0C\u4E0D\u80FD\u52A0\uFF08\u4E0E\u300C\u6CA1\u542F\u52A8\u53EA\u8BFB\u300D\u4E00\u81F4\uFF09\u3002
|
|
14604
|
+
// \u6CA1\u5728\u8DD1\u5C31\u5F15\u5BFC\u5148\u542F\u52A8\uFF0C\u800C\u4E0D\u662F\u6253\u5F00\u5411\u5BFC\u8BA9\u7528\u6237\u767D\u586B\u4E00\u901A\u518D\u88AB 501 \u6321\u56DE\u3002
|
|
14605
|
+
function tryAddBot() {
|
|
14606
|
+
if (daemon && daemon.running) { openWizard(); return; }
|
|
14607
|
+
confirmDialog({
|
|
14608
|
+
title: '\u9700\u8981\u5148\u542F\u52A8 Feishu Bridge',
|
|
14609
|
+
lines: [
|
|
14610
|
+
'Feishu Bridge \u672A\u5728\u8FD0\u884C\u65F6\u63A7\u5236\u53F0\u4E3A\u53EA\u8BFB\uFF0C\u65E0\u6CD5\u6DFB\u52A0\u673A\u5668\u4EBA\u3002',
|
|
14611
|
+
'\u5148\u542F\u52A8 Feishu Bridge\uFF0C\u518D\u56DE\u6765\u6DFB\u52A0\u3002',
|
|
14612
|
+
],
|
|
14613
|
+
confirmLabel: '\u7ACB\u5373\u542F\u52A8',
|
|
14614
|
+
onConfirm: function () { postAction('/api/daemon/start', '\u542F\u52A8'); },
|
|
14615
|
+
});
|
|
14616
|
+
}
|
|
14617
|
+
|
|
14582
14618
|
function openWizard() {
|
|
14583
14619
|
wizStep = 1; wizBotId = null; wizSetup = null; wizManualOpen = false;
|
|
14584
14620
|
wizAutoEnabled = false; wizRestartPrompted = false;
|
|
@@ -14631,6 +14667,11 @@ ${UI_PURE_JS}
|
|
|
14631
14667
|
qrWrap.appendChild(el('div', 'note', '\u6B63\u5728\u751F\u6210\u4E8C\u7EF4\u7801\u2026'));
|
|
14632
14668
|
w.appendChild(qrWrap);
|
|
14633
14669
|
|
|
14670
|
+
var steps = el('div', 'note');
|
|
14671
|
+
steps.style.cssText = 'margin-top:6px;line-height:1.7';
|
|
14672
|
+
steps.textContent = '\u2460 \u7528\u98DE\u4E66 App \u626B\u7801 \u2192 \u2461 \u5728\u98DE\u4E66\u91CC\u70B9\u300C\u521B\u5EFA\u5E76\u6388\u6743\u300D \u2192 \u2462 \u56DE\u5230\u672C\u9875\uFF08\u65E0\u9700\u624B\u52A8\u5237\u65B0\uFF09\uFF0C\u521B\u5EFA\u6210\u529F\u4F1A\u81EA\u52A8\u8FDB\u5165\u7B2C\u2461\u6B65\u300C\u63A5\u5165\u68C0\u6D4B\u300D\u3002';
|
|
14673
|
+
w.appendChild(steps);
|
|
14674
|
+
|
|
14634
14675
|
var statusLine = el('div', 'note'); statusLine.id = 'wizScanStatus';
|
|
14635
14676
|
statusLine.style.textAlign = 'center';
|
|
14636
14677
|
w.appendChild(statusLine);
|
|
@@ -14862,16 +14903,8 @@ ${UI_PURE_JS}
|
|
|
14862
14903
|
w.appendChild(checkItem('\u26A0\uFE0F', '\u7F3A ' + miss.length + ' \u9879\u5FC5\u9700\u6743\u9650', miss.join('\u3001'), grant));
|
|
14863
14904
|
}
|
|
14864
14905
|
}
|
|
14865
|
-
|
|
14866
|
-
|
|
14867
|
-
w.appendChild(checkItem('\u2705', '\u957F\u8FDE\u63A5\u5728\u7EBF', 'bridge \u5DF2\u8FDE\u4E0A\u98DE\u4E66\uFF0C\u53EF\u5B9E\u65F6\u6536\u53D1'));
|
|
14868
|
-
} else if (conn.running) {
|
|
14869
|
-
w.appendChild(checkItem('spin', 'bridge \u8FD0\u884C\u4E2D', '\u957F\u8FDE\u63A5' + (conn.connection ? '\uFF08' + conn.connection + '\uFF09' : '\u5EFA\u7ACB\u4E2D\u2026')));
|
|
14870
|
-
} else {
|
|
14871
|
-
// \u65B0 bot \u5DF2\u81EA\u52A8\u52A0\u5165\u6D3B\u8DC3\u96C6\uFF08\u89C1 pollWizSetup\uFF09\uFF1B\u4E0D\u518D\u8BA9\u7528\u6237\u70B9\u6309\u94AE / \u590D\u5236\u547D\u4EE4\u3002\u771F\u6B63\u62C9\u8D77
|
|
14872
|
-
// \u4E0A\u7EBF\u9760\u6700\u540E\u4E00\u6B65\u300C\u5B8C\u6210\u300D\u65F6\u5F39\u7A97\u786E\u8BA4\u91CD\u542F Feishu Bridge\u3002
|
|
14873
|
-
w.appendChild(checkItem('spin', '\u5F85\u62C9\u8D77\u4E0A\u7EBF', '\u5DF2\u81EA\u52A8\u52A0\u5165\u6D3B\u8DC3\u96C6 \xB7 \u70B9\u300C\u4E0B\u4E00\u6B65\u300D\u5230\u5B8C\u6210\u9875\uFF0C\u786E\u8BA4\u91CD\u542F Feishu Bridge \u5373\u4E0A\u7EBF\u3002'));
|
|
14874
|
-
}
|
|
14906
|
+
// \u300C\u52A0\u5165\u6D3B\u8DC3\u96C6 + \u62C9\u8D77\u4E0A\u7EBF\u300D\u5168\u7A0B\u9759\u9ED8\uFF1A\u65B0 bot \u5DF2\u5728 pollWizSetup \u81EA\u52A8\u52A0\u5165\u6D3B\u8DC3\u96C6\uFF0C\u771F\u6B63\u62C9\u8D77
|
|
14907
|
+
// \u9760\u6700\u540E\u4E00\u6B65\u300C\u5B8C\u6210\u300D\u5F39\u7A97\u786E\u8BA4\u91CD\u542F\u2014\u2014\u8FD9\u91CC\u4E0D\u518D\u663E\u793A\u300C\u5F85\u62C9\u8D77\u4E0A\u7EBF\u300D\u4E4B\u7C7B\u7684\u4E2D\u95F4\u6001\u9879\u3002
|
|
14875
14908
|
// \u4E8B\u4EF6\u8BA2\u9605\uFF1A\u7CFB\u7EDF\u65E0\u6CD5\u53EF\u9760\u68C0\u6D4B\uFF08\u957F\u8FDE\u63A5\u8BA2\u9605\u5728\u5DF2\u53D1\u5E03\u7248\u672C\u91CC\u7684\u4F53\u73B0\u4E0D\u7A33\u5B9A\uFF09\uFF0C\u6545\u53EA\u505A\u63D0\u9192\u3001\u4E0D\u4E0B\u7ED3\u8BBA\u3001
|
|
14876
14909
|
// \u4E0D\u963B\u585E\u300C\u4E0B\u4E00\u6B65\u300D\u3002\u7528\u6237\u81EA\u884C\u53BB\u540E\u53F0\u6838\u5BF9\u3002
|
|
14877
14910
|
var evHint = el('div');
|
|
@@ -14895,33 +14928,6 @@ ${UI_PURE_JS}
|
|
|
14895
14928
|
return actions;
|
|
14896
14929
|
}
|
|
14897
14930
|
|
|
14898
|
-
// \u5B8C\u6210\u6B65\uFF1A\u65B0 bot \u5DF2\u81EA\u52A8\u52A0\u5165\u6D3B\u8DC3\u96C6\uFF0C\u4F46\u8981\u91CD\u542F Feishu Bridge \u624D\u771F\u6B63\u62C9\u8D77\u4E0A\u7EBF\u3002\u5F39\u7A97\u786E\u8BA4
|
|
14899
|
-
// \uFF08\u91CD\u542F\u4F1A\u77ED\u6682\u5F71\u54CD\u5176\u5B83\u5728\u7EBF bot\uFF0C\u6240\u4EE5\u4E0D\u9759\u9ED8\u91CD\u542F\uFF09\uFF1Bdaemon \u6CA1\u5728\u8DD1\u5C31\u6539\u4E3A\u300C\u542F\u52A8\u300D\u3002\u4E00\u6B21\u6027\u3002
|
|
14900
|
-
function maybePromptRestartAtDone() {
|
|
14901
|
-
if (wizRestartPrompted) return;
|
|
14902
|
-
var conn = (wizSetup && wizSetup.connection) || {};
|
|
14903
|
-
if (conn.running && conn.connection === 'connected') return; // \u5DF2\u7ECF\u5728\u7EBF\uFF0C\u65E0\u9700\u91CD\u542F
|
|
14904
|
-
wizRestartPrompted = true;
|
|
14905
|
-
if (daemon && daemon.running) {
|
|
14906
|
-
confirmDialog({
|
|
14907
|
-
title: '\u{1F504} \u7ACB\u5373\u91CD\u542F Feishu Bridge \u8BA9\u65B0\u673A\u5668\u4EBA\u4E0A\u7EBF\uFF1F',
|
|
14908
|
-
lines: [
|
|
14909
|
-
'\u65B0\u673A\u5668\u4EBA\u5DF2\u52A0\u5165\u6D3B\u8DC3\u96C6\uFF0C\u91CD\u542F Feishu Bridge \u540E\u5373\u53EF\u4E0A\u7EBF\u3002',
|
|
14910
|
-
'\u91CD\u542F\u7EA6\u6570\u79D2\uFF0C\u671F\u95F4\u6240\u6709\u5728\u7EBF\u673A\u5668\u4EBA\u7684\u957F\u8FDE\u63A5\u4F1A\u77ED\u6682\u65AD\u5F00\u5E76\u81EA\u52A8\u91CD\u8FDE\u3002',
|
|
14911
|
-
],
|
|
14912
|
-
confirmLabel: '\u7ACB\u5373\u91CD\u542F',
|
|
14913
|
-
onConfirm: function () { postAction('/api/daemon/restart', '\u91CD\u542F'); },
|
|
14914
|
-
});
|
|
14915
|
-
} else {
|
|
14916
|
-
confirmDialog({
|
|
14917
|
-
title: '\u{1F680} \u7ACB\u5373\u542F\u52A8 Feishu Bridge \u8BA9\u673A\u5668\u4EBA\u4E0A\u7EBF\uFF1F',
|
|
14918
|
-
lines: ['Feishu Bridge \u5F53\u524D\u672A\u5728\u8FD0\u884C\uFF0C\u542F\u52A8\u540E\u65B0\u673A\u5668\u4EBA\u5373\u53EF\u4E0A\u7EBF\u3002'],
|
|
14919
|
-
confirmLabel: '\u7ACB\u5373\u542F\u52A8',
|
|
14920
|
-
onConfirm: function () { postAction('/api/daemon/start', '\u542F\u52A8'); },
|
|
14921
|
-
});
|
|
14922
|
-
}
|
|
14923
|
-
}
|
|
14924
|
-
|
|
14925
14931
|
function copyRow(text) {
|
|
14926
14932
|
var row = el('div', 'copybox');
|
|
14927
14933
|
row.appendChild(el('code', null, text));
|
|
@@ -14942,35 +14948,23 @@ ${UI_PURE_JS}
|
|
|
14942
14948
|
w.textContent = '';
|
|
14943
14949
|
w.appendChild(el('h3', null, '\u{1F389} \u63A5\u5165\u5B8C\u6210'));
|
|
14944
14950
|
w.appendChild(wizStepBar(3));
|
|
14945
|
-
|
|
14946
|
-
// \
|
|
14947
|
-
|
|
14948
|
-
|
|
14949
|
-
|
|
14950
|
-
|
|
14951
|
-
|
|
14952
|
-
|
|
14953
|
-
|
|
14954
|
-
var d = el('div'); d.style.padding = '4px 0'; d.textContent = line;
|
|
14955
|
-
ul.appendChild(d);
|
|
14956
|
-
});
|
|
14957
|
-
w.appendChild(ul);
|
|
14958
|
-
w.appendChild(el('div', 'note', '\u63D0\u793A\uFF1A\u79C1\u804A\u673A\u5668\u4EBA\u53D1\u4EFB\u610F\u6D88\u606F\u5373\u53EF\u5524\u51FA\u79C1\u804A\u7BA1\u7406\u53F0\uFF1BWeb \u63A7\u5236\u53F0\u4E0E\u79C1\u804A\u5361\u7247\u5171\u4EAB\u540C\u4E00\u5957\u8BBE\u7F6E\uFF0C\u53CC\u7AEF\u5B9E\u65F6\u4E00\u81F4\u3002'));
|
|
14959
|
-
// \u65B0\u5EFA\u7684\u673A\u5668\u4EBA\u8981\u7B49 daemon \u91CD\u542F\u3001\u88AB supervisor \u63A5\u7BA1\u540E\u624D\u771F\u6B63\u4E0A\u7EBF\uFF08\u5C24\u5176\u300C\u5F15\u5BFC\u63A7\u5236\u53F0\u300D\u662F
|
|
14960
|
-
// \u96F6 bot \u8D77\u7684\uFF0C\u5F97\u91CD\u542F\u624D\u4F1A\u8FDE\u4E0A\u8FD9\u4E2A\u65B0 bot\uFF09\u3002\u7ED9\u4E00\u6761\u9192\u76EE\u63D0\u793A + \u4E00\u952E\u91CD\u542F\uFF08\u786E\u8BA4\u5F39\u7A97\u91CC\u4F1A\u8BF4\u660E
|
|
14961
|
-
// \u91CD\u542F\u4F1A\u77ED\u6682\u6253\u65AD\u5176\u5B83\u5728\u8DD1\u7684\u673A\u5668\u4EBA\uFF09\u3002
|
|
14962
|
-
var liveTip = el('div', 'note');
|
|
14963
|
-
liveTip.style.cssText = 'margin-top:10px;padding:10px 12px;background:var(--blue-tint);border-radius:8px;color:var(--text-2)';
|
|
14964
|
-
liveTip.textContent = '\u26A1 \u8BA9\u5B83\u4E0A\u7EBF\uFF1A\u65B0\u673A\u5668\u4EBA\u9700\u91CD\u542F Feishu Bridge \u540E\u7531\u540E\u53F0\u63A5\u7BA1\u3002\u70B9\u4E0B\u9762\u300C\u91CD\u542F\u4F7F\u5176\u4E0A\u7EBF\u300D\u5373\u53EF\uFF08\u9996\u6B21\u521B\u5EFA\u65F6\u91CD\u542F\u5F88\u5B89\u5168\uFF0C\u4E0D\u5F71\u54CD\u522B\u7684\u673A\u5668\u4EBA\uFF09\u3002';
|
|
14965
|
-
w.appendChild(liveTip);
|
|
14951
|
+
var who = (wizSetup && wizSetup.botName) || wizBotId || '';
|
|
14952
|
+
// \u5230\u8FD9\u4E00\u6B65\u53EA\u5269\u4E00\u4EF6\u4E8B\uFF1A\u91CD\u542F Feishu Bridge \u8BA9\u65B0 bot \u4E0A\u7EBF\u3002\u4E0D\u518D\u5806\u300C\u65B0\u5EFA\u9879\u76EE/\u62C9\u7FA4/@\u300D\u90A3\u5957
|
|
14953
|
+
// \u5F15\u5BFC\uFF08\u90A3\u4F1A\u8BA9\u4EBA\u4EE5\u4E3A\u5F97\u5148\u505A\u5B8C\u624D\u80FD\u7EE7\u7EED\uFF09\u3002\u91CD\u542F\u5165\u53E3**\u53EA\u6B64\u4E00\u5904**\uFF1A\u4E3B\u6309\u94AE\u300C\u91CD\u542F\u4F7F\u5176\u4E0A\u7EBF\u300D\uFF1B
|
|
14954
|
+
// \u60F3\u665A\u70B9\u518D\u8BF4\u5C31\u70B9\u300C\u7A0D\u540E\u518D\u91CD\u542F\u300D\u3002
|
|
14955
|
+
w.appendChild(el('div', 'note', '\u673A\u5668\u4EBA\u300C' + who + '\u300D\u5DF2\u52A0\u5165\u6D3B\u8DC3\u96C6\u3002\u6700\u540E\u4E00\u6B65\uFF1A\u91CD\u542F Feishu Bridge \u8BA9\u5B83\u4E0A\u7EBF\uFF08\u7EA6\u6570\u79D2\uFF0C\u5176\u5B83\u5728\u7EBF\u673A\u5668\u4EBA\u4F1A\u77ED\u6682\u65AD\u8FDE\u540E\u81EA\u52A8\u91CD\u8FDE\uFF09\u3002'));
|
|
14956
|
+
var openRow = el('div'); openRow.style.margin = '4px 0 12px';
|
|
14957
|
+
openRow.appendChild(openBotBtn(wizBotId, wizSetup && wizSetup.tenant, '\u{1F517} \u5728\u98DE\u4E66\u4E2D\u6253\u5F00\u673A\u5668\u4EBA'));
|
|
14958
|
+
w.appendChild(openRow);
|
|
14959
|
+
var gotoBot = function () { var id = wizBotId; closeWizard(); if (id) go({ tab: 'bot', botId: id }); };
|
|
14966
14960
|
var actions = el('div', 'actions');
|
|
14967
|
-
var
|
|
14968
|
-
|
|
14969
|
-
actions.appendChild(
|
|
14961
|
+
var later = el('button', 'btn', '\u7A0D\u540E\u518D\u91CD\u542F');
|
|
14962
|
+
later.onclick = gotoBot;
|
|
14963
|
+
actions.appendChild(later);
|
|
14970
14964
|
actions.appendChild(el('div', 'grow'));
|
|
14971
|
-
var
|
|
14972
|
-
|
|
14973
|
-
actions.appendChild(
|
|
14965
|
+
var restart = el('button', 'btn primary', '\u{1F501} \u91CD\u542F\u4F7F\u5176\u4E0A\u7EBF');
|
|
14966
|
+
restart.onclick = function () { postAction('/api/daemon/restart', '\u91CD\u542F'); gotoBot(); };
|
|
14967
|
+
actions.appendChild(restart);
|
|
14974
14968
|
w.appendChild(actions);
|
|
14975
14969
|
}
|
|
14976
14970
|
|
|
@@ -15374,7 +15368,16 @@ function createWebServer(opts) {
|
|
|
15374
15368
|
const appSecret = typeof body.appSecret === "string" ? body.appSecret : "";
|
|
15375
15369
|
const tenant = body.tenant === "lark" ? "lark" : "feishu";
|
|
15376
15370
|
const desiredName = typeof body.name === "string" && body.name.trim() ? body.name.trim() : void 0;
|
|
15377
|
-
|
|
15371
|
+
let result;
|
|
15372
|
+
try {
|
|
15373
|
+
result = await opts.service.registerBot({ appId, appSecret, tenant, desiredName });
|
|
15374
|
+
} catch (err) {
|
|
15375
|
+
if (err instanceof NotWiredYetError) {
|
|
15376
|
+
sendJson(res, 501, { error: "not_wired_yet", message: err.message });
|
|
15377
|
+
return;
|
|
15378
|
+
}
|
|
15379
|
+
throw err;
|
|
15380
|
+
}
|
|
15378
15381
|
if (result.ok) {
|
|
15379
15382
|
sendJson(res, 201, {
|
|
15380
15383
|
ok: true,
|
|
@@ -16493,7 +16496,10 @@ async function runWeb(opts = {}) {
|
|
|
16493
16496
|
process.exitCode = 1;
|
|
16494
16497
|
return;
|
|
16495
16498
|
}
|
|
16496
|
-
const service = createReadonlyAdminService({
|
|
16499
|
+
const service = createReadonlyAdminService({
|
|
16500
|
+
startDaemon: () => spawnDaemonControl("start"),
|
|
16501
|
+
applyUpdate: () => spawnDaemonControl("update")
|
|
16502
|
+
});
|
|
16497
16503
|
const web = createWebServer({ service, token: stableWebConsoleToken(), liveConsole: () => readWebConsole() });
|
|
16498
16504
|
let url;
|
|
16499
16505
|
try {
|
package/package.json
CHANGED