agim-cli 1.0.3 → 1.0.5

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.
@@ -150,6 +150,32 @@ export class ILinkWeChatAdapter {
150
150
  qrToken: response.qrcode,
151
151
  };
152
152
  }
153
+ /**
154
+ * Single-shot QR status check, intended for the web settings page
155
+ * which polls on its own cadence rather than holding a 2-minute
156
+ * long-poll. On 'confirmed' the credentials are persisted to disk
157
+ * exactly the same way `waitForQRLogin` does, so the caller doesn't
158
+ * need to know about the credentials-file layout.
159
+ */
160
+ async pollQRLogin(qrToken) {
161
+ const status = await this.client.getQRCodeStatus(qrToken);
162
+ if (status.status === 'confirmed' && status.bot_token && status.ilink_bot_id && status.ilink_user_id) {
163
+ const credentials = {
164
+ bot_token: status.bot_token,
165
+ baseUrl: status.baseurl || 'https://ilinkai.weixin.qq.com',
166
+ accountId: status.ilink_bot_id,
167
+ userId: status.ilink_user_id,
168
+ savedAt: new Date().toISOString(),
169
+ };
170
+ await this.saveCredentials(credentials);
171
+ this.client.setCredentials(credentials);
172
+ return {
173
+ status: 'confirmed',
174
+ credentials: { accountId: credentials.accountId, userId: credentials.userId },
175
+ };
176
+ }
177
+ return { status: status.status };
178
+ }
153
179
  /**
154
180
  * Poll QR code status until confirmed or expired
155
181
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ilink-adapter.js","sourceRoot":"","sources":["../../../../src/plugins/messengers/wechat/ilink-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ilink-adapter.js","sourceRoot":"","sources":["../../../../src/plugins/messengers/wechat/ilink-adapter.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,45 @@
89
89
  workspaceDeleted: 'Workspace deleted',
90
90
  workspaceIdHelp: 'Letters / digits / _ / - only',
91
91
  workspaceDefaultLocked: 'default (locked)',
92
+
93
+ // ── messengers (extras for v1.0.5) ───────────────────────
94
+ wechatScan: 'Scan to log in',
95
+ wechatScanTitle: 'WeChat — scan to log in',
96
+ wechatGenerating: 'Generating QR code…',
97
+ wechatWaiting: 'Waiting for scan…',
98
+ wechatScanned: 'QR scanned — confirm on your phone…',
99
+ wechatConfirmed: '✓ Logged in (account {account})',
100
+ wechatExpired: 'QR code expired',
101
+ wechatRegen: 'Regenerate',
102
+ wechatClose: 'Close',
103
+ wechatFailed: 'Failed: {error}',
104
+ dingtalk: 'DingTalk',
105
+ dingtalkHint: 'Stream-mode app: Client ID + Client Secret',
106
+ dingtalkClientId: 'Client ID',
107
+ dingtalkClientSecret: 'Client Secret',
108
+ discord: 'Discord',
109
+ discordHint: 'Bot token from Discord Developer Portal',
110
+ discordToken: 'Bot Token',
111
+ discordGuilds: 'Allowed guilds (comma-separated IDs, blank = any)',
112
+ discordChannels: 'Allowed channels (comma-separated IDs, blank = any)',
113
+ configure: 'Configure',
114
+ reconfigure: 'Edit credentials',
115
+
116
+ // ── service control ──────────────────────────────────────
117
+ svcTitle: 'Service',
118
+ svcStateLoading: 'Checking…',
119
+ svcStateRunning: 'Running ({mode}, pid {pid}, up {uptime})',
120
+ svcStateRunningNoUp: 'Running ({mode}, pid {pid})',
121
+ svcStateNone: 'Not running',
122
+ svcStart: 'Start',
123
+ svcStop: 'Stop',
124
+ svcRestart: 'Restart',
125
+ svcConfirmStop: 'Stop Agim? The web console will go offline until you start it again from a terminal.',
126
+ svcConfirmRestart: 'Restart Agim? The web console will reconnect automatically in a few seconds.',
127
+ svcRestarting: 'Restarting — waiting for the service to come back…',
128
+ svcRestarted: '✓ Service restarted',
129
+ svcStopped: '✓ Service stopped (this page is now disconnected)',
130
+ svcFgWarning: 'Foreground service is running in another terminal — restart it there.',
92
131
  },
93
132
  zh: {
94
133
  title: 'Agim — 设置',
@@ -164,6 +203,45 @@
164
203
  workspaceDeleted: '工作区已删除',
165
204
  workspaceIdHelp: '仅支持字母 / 数字 / _ / -',
166
205
  workspaceDefaultLocked: '默认(不可改)',
206
+
207
+ // ── messengers (extras for v1.0.5) ───────────────────────
208
+ wechatScan: '扫码登录',
209
+ wechatScanTitle: '微信 — 扫码登录',
210
+ wechatGenerating: '生成二维码中…',
211
+ wechatWaiting: '等待扫描…',
212
+ wechatScanned: '已扫描,请在手机端确认…',
213
+ wechatConfirmed: '✓ 登录成功(账号 {account})',
214
+ wechatExpired: '二维码已过期',
215
+ wechatRegen: '重新生成',
216
+ wechatClose: '关闭',
217
+ wechatFailed: '失败:{error}',
218
+ dingtalk: '钉钉',
219
+ dingtalkHint: 'Stream 模式应用:Client ID + Client Secret',
220
+ dingtalkClientId: 'Client ID',
221
+ dingtalkClientSecret: 'Client Secret',
222
+ discord: 'Discord',
223
+ discordHint: '在 Discord Developer Portal 获取 Bot Token',
224
+ discordToken: 'Bot Token',
225
+ discordGuilds: '允许的服务器(逗号分隔 ID,空 = 不限)',
226
+ discordChannels: '允许的频道(逗号分隔 ID,空 = 不限)',
227
+ configure: '配置',
228
+ reconfigure: '修改凭据',
229
+
230
+ // ── service control ──────────────────────────────────────
231
+ svcTitle: '服务',
232
+ svcStateLoading: '检查中…',
233
+ svcStateRunning: '运行中({mode},pid {pid},已运行 {uptime})',
234
+ svcStateRunningNoUp: '运行中({mode},pid {pid})',
235
+ svcStateNone: '未运行',
236
+ svcStart: '启动',
237
+ svcStop: '停止',
238
+ svcRestart: '重启',
239
+ svcConfirmStop: '停止 Agim?停止后 web 控制台会离线,需要回终端用 `agim start` 再启动。',
240
+ svcConfirmRestart: '重启 Agim?web 控制台会在几秒后自动重连。',
241
+ svcRestarting: '重启中——等待服务恢复…',
242
+ svcRestarted: '✓ 服务已重启',
243
+ svcStopped: '✓ 服务已停止(页面已断开连接)',
244
+ svcFgWarning: '前台服务在另一个终端运行——回那个终端重启。',
167
245
  },
168
246
  };
169
247
  function t(key) { return T[window.__lang][key] || T.en[key] || key; }
@@ -603,6 +681,7 @@
603
681
  function render() {
604
682
  app.innerHTML = `
605
683
  <h1>${t('h1')}</h1>
684
+ ${renderServiceCard()}
606
685
  ${renderAgentsCard()}
607
686
  ${renderMessengersCard()}
608
687
  ${renderAcpCard()}
@@ -610,6 +689,28 @@
610
689
  ${renderGeneralCard()}
611
690
  `;
612
691
  bindEvents();
692
+ // Service status loads asynchronously; the card renders with a
693
+ // placeholder, populated by the first /api/service/status response.
694
+ void loadServiceStatus();
695
+ }
696
+
697
+ // ==========================================
698
+ // Service control card
699
+ // ==========================================
700
+ function renderServiceCard() {
701
+ return `
702
+ <div class="card">
703
+ <h2>${t('svcTitle')}</h2>
704
+ <div class="status" id="svc-state" style="margin-bottom:14px">
705
+ <span class="dot dot-off"></span>${t('svcStateLoading')}
706
+ </div>
707
+ <div class="actions">
708
+ <button type="button" class="btn btn-primary" id="svc-restart">${t('svcRestart')}</button>
709
+ <button type="button" class="btn" id="svc-stop">${t('svcStop')}</button>
710
+ <button type="button" class="btn" id="svc-start" disabled>${t('svcStart')}</button>
711
+ </div>
712
+ </div>
713
+ `;
613
714
  }
614
715
 
615
716
  // ==========================================
@@ -665,10 +766,14 @@
665
766
  const messengers = config.messengers || [];
666
767
  const tg = config.telegram || {};
667
768
  const fs = config.feishu || {};
769
+ const dt = config.dingtalk || {};
770
+ const dc = config.discord || {};
668
771
 
669
772
  const wechatEnabled = messengers.includes('wechat-ilink');
670
773
  const telegramEnabled = messengers.includes('telegram');
671
774
  const feishuEnabled = messengers.includes('feishu');
775
+ const dingtalkEnabled = messengers.includes('dingtalk');
776
+ const discordEnabled = messengers.includes('discord');
672
777
 
673
778
  return `
674
779
  <div class="card">
@@ -685,7 +790,11 @@
685
790
  </div>
686
791
  <div class="toggle ${wechatEnabled ? 'active' : ''}" data-toggle-messenger="wechat-ilink"></div>
687
792
  </div>
688
- ${wechatEnabled ? `<div class="hint-box">${t('wechatBox')}</div>` : ''}
793
+ ${wechatEnabled ? `
794
+ <div class="actions">
795
+ <button type="button" class="btn" id="wechatScanBtn">${t('wechatScan')}</button>
796
+ </div>
797
+ ` : ''}
689
798
  </div>
690
799
 
691
800
  <!-- Telegram -->
@@ -714,7 +823,7 @@
714
823
  </div>
715
824
 
716
825
  <!-- Feishu -->
717
- <div>
826
+ <div style="margin-bottom:16px">
718
827
  <div class="agent-row">
719
828
  <div class="left">
720
829
  <div>
@@ -738,6 +847,66 @@
738
847
  ` : ''}
739
848
  </div>
740
849
 
850
+ <!-- DingTalk -->
851
+ <div style="margin-bottom:16px">
852
+ <div class="agent-row">
853
+ <div class="left">
854
+ <div>
855
+ <div class="name">${t('dingtalk')}</div>
856
+ <div class="hint">${t('dingtalkHint')}</div>
857
+ </div>
858
+ </div>
859
+ <div class="toggle ${dingtalkEnabled ? 'active' : ''}" data-toggle-messenger="dingtalk"></div>
860
+ </div>
861
+ ${dingtalkEnabled ? `
862
+ <div class="row">
863
+ <div>
864
+ <label>${t('dingtalkClientId')}</label>
865
+ <input type="text" id="dtClientId" value="${esc(dt.clientId || '')}" placeholder="dingxxxxxx">
866
+ </div>
867
+ <div>
868
+ <label>${t('dingtalkClientSecret')}</label>
869
+ <input type="password" id="dtClientSecret" value="${esc(dt.clientSecret || '')}" placeholder="••••••••">
870
+ </div>
871
+ </div>
872
+ ` : ''}
873
+ </div>
874
+
875
+ <!-- Discord -->
876
+ <div>
877
+ <div class="agent-row">
878
+ <div class="left">
879
+ <div>
880
+ <div class="name">${t('discord')}</div>
881
+ <div class="hint">${t('discordHint')}</div>
882
+ </div>
883
+ </div>
884
+ <div class="toggle ${discordEnabled ? 'active' : ''}" data-toggle-messenger="discord"></div>
885
+ </div>
886
+ ${discordEnabled ? `
887
+ <div class="row">
888
+ <div>
889
+ <label>${t('discordToken')}</label>
890
+ <input type="password" id="dcToken" value="${esc(dc.botToken || '')}" placeholder="••••••••">
891
+ </div>
892
+ <div>
893
+ <label>${t('channelId')}</label>
894
+ <input type="text" id="dcChannel" value="${esc(dc.channelId || '')}" placeholder="default">
895
+ </div>
896
+ </div>
897
+ <div class="row">
898
+ <div>
899
+ <label>${t('discordGuilds')}</label>
900
+ <input type="text" id="dcGuilds" value="${esc((dc.allowedGuilds || []).join(', '))}" placeholder="123, 456">
901
+ </div>
902
+ <div>
903
+ <label>${t('discordChannels')}</label>
904
+ <input type="text" id="dcChannels" value="${esc((dc.allowedChannels || []).join(', '))}" placeholder="789, 101112">
905
+ </div>
906
+ </div>
907
+ ` : ''}
908
+ </div>
909
+
741
910
  <div class="actions">
742
911
  <button type="button" class="btn btn-primary" id="saveMessengers">${t('saveMessengers')}</button>
743
912
  </div>
@@ -1037,19 +1206,78 @@
1037
1206
  // the Reveal buttons re-fetch with ?reveal=1 on demand.
1038
1207
  void loadEnvSection();
1039
1208
 
1209
+ // Service control card
1210
+ document.getElementById('svc-restart')?.addEventListener('click', () => svcAction('restart'));
1211
+ document.getElementById('svc-stop')?.addEventListener('click', () => svcAction('stop'));
1212
+ document.getElementById('svc-start')?.addEventListener('click', () => svcAction('start'));
1213
+
1040
1214
  // Agent toggles
1041
1215
  document.querySelectorAll('[data-toggle-agent]').forEach(el => {
1042
1216
  el.addEventListener('click', () => el.classList.toggle('active'));
1043
1217
  });
1044
1218
 
1045
- // Messenger toggles
1219
+ // Messenger toggles — flip in-memory config.messengers, then re-render.
1046
1220
  document.querySelectorAll('[data-toggle-messenger]').forEach(el => {
1047
1221
  el.addEventListener('click', () => {
1048
- el.classList.toggle('active');
1049
- syncMessengerToggles();
1222
+ const id = el.getAttribute('data-toggle-messenger');
1223
+ const set = new Set(config.messengers || []);
1224
+ if (set.has(id)) set.delete(id);
1225
+ else set.add(id);
1226
+ config.messengers = Array.from(set);
1227
+ render();
1050
1228
  });
1051
1229
  });
1052
1230
 
1231
+ // Save messengers — pull credentials from any visible fields, then PUT.
1232
+ document.getElementById('saveMessengers')?.addEventListener('click', async () => {
1233
+ const get = (id) => document.getElementById(id)?.value?.trim() ?? '';
1234
+ const messengers = (config.messengers || []);
1235
+
1236
+ if (messengers.includes('telegram')) {
1237
+ const botToken = get('tgToken');
1238
+ const channelId = get('tgChannel') || 'default';
1239
+ if (botToken) config.telegram = { ...(config.telegram || {}), botToken, channelId };
1240
+ else if (config.telegram?.channelId !== channelId) config.telegram = { ...(config.telegram || {}), channelId };
1241
+ }
1242
+ if (messengers.includes('feishu')) {
1243
+ const appId = get('fsAppId');
1244
+ const appSecret = get('fsAppSecret');
1245
+ config.feishu = {
1246
+ ...(config.feishu || {}),
1247
+ ...(appId ? { appId } : {}),
1248
+ ...(appSecret ? { appSecret } : {}),
1249
+ };
1250
+ }
1251
+ if (messengers.includes('dingtalk')) {
1252
+ const clientId = get('dtClientId');
1253
+ const clientSecret = get('dtClientSecret');
1254
+ config.dingtalk = {
1255
+ ...(config.dingtalk || {}),
1256
+ ...(clientId ? { clientId } : {}),
1257
+ ...(clientSecret ? { clientSecret } : {}),
1258
+ };
1259
+ }
1260
+ if (messengers.includes('discord')) {
1261
+ const botToken = get('dcToken');
1262
+ const channelId = get('dcChannel') || 'default';
1263
+ const guildsRaw = get('dcGuilds');
1264
+ const channelsRaw = get('dcChannels');
1265
+ config.discord = {
1266
+ ...(config.discord || {}),
1267
+ ...(botToken ? { botToken } : {}),
1268
+ channelId,
1269
+ allowedGuilds: guildsRaw ? guildsRaw.split(',').map(s => s.trim()).filter(Boolean) : undefined,
1270
+ allowedChannels: channelsRaw ? channelsRaw.split(',').map(s => s.trim()).filter(Boolean) : undefined,
1271
+ };
1272
+ }
1273
+ await saveConfig();
1274
+ });
1275
+
1276
+ // WeChat — open QR modal on click.
1277
+ document.getElementById('wechatScanBtn')?.addEventListener('click', () => {
1278
+ openWechatQrModal();
1279
+ });
1280
+
1053
1281
  // ACP toggles
1054
1282
  document.querySelectorAll('[data-toggle-acp]').forEach(el => {
1055
1283
  el.addEventListener('click', () => el.classList.toggle('active'));
@@ -1302,6 +1530,186 @@
1302
1530
  render();
1303
1531
  }
1304
1532
 
1533
+ // ==========================================
1534
+ // WeChat QR-login modal
1535
+ // ==========================================
1536
+ let wechatPollTimer = null;
1537
+ function closeWechatQrModal() {
1538
+ if (wechatPollTimer) { clearTimeout(wechatPollTimer); wechatPollTimer = null; }
1539
+ const m = document.getElementById('wechat-modal');
1540
+ if (m) m.remove();
1541
+ }
1542
+ async function openWechatQrModal() {
1543
+ // Tear down any prior modal first.
1544
+ closeWechatQrModal();
1545
+ const overlay = document.createElement('div');
1546
+ overlay.id = 'wechat-modal';
1547
+ overlay.style.cssText = 'position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.55)';
1548
+ overlay.innerHTML = `
1549
+ <div style="background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 28px;max-width:380px;width:90%;text-align:center">
1550
+ <div style="font-weight:600;font-size:15px;margin-bottom:14px">${esc(t('wechatScanTitle'))}</div>
1551
+ <div id="wechat-qr-wrap" style="min-height:240px;display:flex;align-items:center;justify-content:center;background:var(--surface2);border-radius:8px;margin-bottom:12px">
1552
+ <div style="color:var(--text-dim);font-size:13px">${esc(t('wechatGenerating'))}</div>
1553
+ </div>
1554
+ <div id="wechat-qr-status" style="font-size:13px;color:var(--text-dim);margin-bottom:14px;min-height:18px"></div>
1555
+ <div style="display:flex;gap:8px;justify-content:center">
1556
+ <button type="button" class="btn" id="wechat-regen">${esc(t('wechatRegen'))}</button>
1557
+ <button type="button" class="btn" id="wechat-close">${esc(t('wechatClose'))}</button>
1558
+ </div>
1559
+ </div>
1560
+ `;
1561
+ document.body.appendChild(overlay);
1562
+ document.getElementById('wechat-close')?.addEventListener('click', closeWechatQrModal);
1563
+ document.getElementById('wechat-regen')?.addEventListener('click', () => { void startWechatQr(); });
1564
+ overlay.addEventListener('click', (e) => { if (e.target === overlay) closeWechatQrModal(); });
1565
+ await startWechatQr();
1566
+ }
1567
+
1568
+ async function startWechatQr() {
1569
+ if (wechatPollTimer) { clearTimeout(wechatPollTimer); wechatPollTimer = null; }
1570
+ const wrap = document.getElementById('wechat-qr-wrap');
1571
+ const statusEl = document.getElementById('wechat-qr-status');
1572
+ if (!wrap || !statusEl) return;
1573
+ wrap.innerHTML = `<div style="color:var(--text-dim);font-size:13px">${esc(t('wechatGenerating'))}</div>`;
1574
+ statusEl.textContent = '';
1575
+ let qrToken;
1576
+ try {
1577
+ const res = await authFetch('/api/messengers/wechat/qr-start', { method: 'POST' });
1578
+ if (!res.ok) {
1579
+ const j = await res.json().catch(() => ({}));
1580
+ throw new Error(j.error || res.statusText);
1581
+ }
1582
+ const data = await res.json();
1583
+ qrToken = data.qrToken;
1584
+ // qrUrl from iLink may be a data: URL (base64 png) or an https URL.
1585
+ // Either way, <img src=...> handles it directly.
1586
+ wrap.innerHTML = `<img src="${esc(data.qrUrl)}" alt="QR code" style="width:240px;height:240px;border-radius:6px;background:#fff;padding:8px">`;
1587
+ statusEl.textContent = t('wechatWaiting');
1588
+ } catch (err) {
1589
+ wrap.innerHTML = `<div style="color:var(--red);font-size:13px">${esc(t('wechatFailed').replace('{error}', err && err.message ? err.message : err))}</div>`;
1590
+ return;
1591
+ }
1592
+ // Begin polling.
1593
+ const poll = async () => {
1594
+ try {
1595
+ const res = await authFetch('/api/messengers/wechat/qr-status?token=' + encodeURIComponent(qrToken));
1596
+ if (!res.ok) {
1597
+ const j = await res.json().catch(() => ({}));
1598
+ throw new Error(j.error || res.statusText);
1599
+ }
1600
+ const data = await res.json();
1601
+ if (data.status === 'wait') {
1602
+ statusEl.textContent = t('wechatWaiting');
1603
+ wechatPollTimer = setTimeout(poll, 1500);
1604
+ return;
1605
+ }
1606
+ if (data.status === 'scaned') {
1607
+ statusEl.textContent = t('wechatScanned');
1608
+ wechatPollTimer = setTimeout(poll, 1000);
1609
+ return;
1610
+ }
1611
+ if (data.status === 'confirmed') {
1612
+ const account = (data.credentials && data.credentials.accountId) || '';
1613
+ statusEl.innerHTML = '<span style="color:var(--green)">' + esc(t('wechatConfirmed').replace('{account}', account)) + '</span>';
1614
+ // Refresh the underlying config (server added 'wechat-ilink' to messengers).
1615
+ toast(t('savedMsg'), 'success');
1616
+ setTimeout(() => { closeWechatQrModal(); void init(); }, 1500);
1617
+ return;
1618
+ }
1619
+ if (data.status === 'expired') {
1620
+ statusEl.innerHTML = '<span style="color:var(--red)">' + esc(t('wechatExpired')) + '</span>';
1621
+ return;
1622
+ }
1623
+ // Unknown status — keep polling once, then stop.
1624
+ wechatPollTimer = setTimeout(poll, 1500);
1625
+ } catch (err) {
1626
+ statusEl.innerHTML = '<span style="color:var(--red)">' + esc(t('wechatFailed').replace('{error}', err && err.message ? err.message : err)) + '</span>';
1627
+ }
1628
+ };
1629
+ wechatPollTimer = setTimeout(poll, 1000);
1630
+ }
1631
+
1632
+ // ==========================================
1633
+ // Service-control card (status + start/stop/restart)
1634
+ // ==========================================
1635
+ let svcPollTimer = null;
1636
+ async function loadServiceStatus() {
1637
+ const stateEl = document.getElementById('svc-state');
1638
+ const startBtn = document.getElementById('svc-start');
1639
+ const stopBtn = document.getElementById('svc-stop');
1640
+ const restartBtn = document.getElementById('svc-restart');
1641
+ if (!stateEl) return;
1642
+ try {
1643
+ const res = await authFetch('/api/service/status');
1644
+ if (!res.ok) throw new Error(res.statusText);
1645
+ const d = await res.json();
1646
+ if (d.mode === 'none') {
1647
+ stateEl.innerHTML = '<span class="dot dot-off"></span>' + esc(t('svcStateNone'));
1648
+ } else {
1649
+ const tpl = d.uptime ? t('svcStateRunning') : t('svcStateRunningNoUp');
1650
+ const label = tpl
1651
+ .replace('{mode}', d.mode || '?')
1652
+ .replace('{pid}', d.pid != null ? d.pid : '?')
1653
+ .replace('{uptime}', d.uptime || '');
1654
+ stateEl.innerHTML = '<span class="dot dot-on"></span>' + esc(label);
1655
+ }
1656
+ if (startBtn) startBtn.disabled = d.mode !== 'none';
1657
+ if (stopBtn) stopBtn.disabled = d.mode === 'none';
1658
+ if (restartBtn) restartBtn.disabled = d.mode === 'none' || d.mode === 'foreground';
1659
+ } catch (err) {
1660
+ stateEl.textContent = (t('error') + ': ' + (err && err.message ? err.message : err));
1661
+ }
1662
+ }
1663
+ async function svcAction(action) {
1664
+ const confirmKey = action === 'stop' ? 'svcConfirmStop' : action === 'restart' ? 'svcConfirmRestart' : null;
1665
+ if (confirmKey && !confirm(t(confirmKey))) return;
1666
+ const stateEl = document.getElementById('svc-state');
1667
+ try {
1668
+ const res = await authFetch('/api/service/' + action, { method: 'POST' });
1669
+ if (action === 'restart') {
1670
+ // The HTTP response may not arrive before the parent process
1671
+ // SIGTERMs itself. Either way, drop into a "wait for reconnect" loop.
1672
+ if (stateEl) stateEl.innerHTML = '<span class="dot dot-off"></span>' + esc(t('svcRestarting'));
1673
+ await waitForServiceBack(stateEl);
1674
+ if (stateEl) {
1675
+ // loadServiceStatus refreshes the badge to live state.
1676
+ await loadServiceStatus();
1677
+ toast(t('svcRestarted'), 'success');
1678
+ }
1679
+ return;
1680
+ }
1681
+ if (action === 'stop') {
1682
+ if (stateEl) stateEl.innerHTML = '<span class="dot dot-off"></span>' + esc(t('svcStopped'));
1683
+ // Don't poll — the server is gone.
1684
+ return;
1685
+ }
1686
+ if (!res.ok) {
1687
+ const j = await res.json().catch(() => ({}));
1688
+ throw new Error(j.error || res.statusText);
1689
+ }
1690
+ await loadServiceStatus();
1691
+ } catch (err) {
1692
+ toast(t('error') + ': ' + (err && err.message ? err.message : err), 'error');
1693
+ }
1694
+ }
1695
+ async function waitForServiceBack(stateEl) {
1696
+ // The new daemon takes ~2-4s to come back. Poll /api/service/status
1697
+ // every 700ms for up to 30s. Each successful response means the new
1698
+ // process has bound the port.
1699
+ const start = Date.now();
1700
+ for (;;) {
1701
+ if (Date.now() - start > 30000) {
1702
+ if (stateEl) stateEl.innerHTML = '<span class="dot dot-off"></span>' + esc(t('error'));
1703
+ return;
1704
+ }
1705
+ try {
1706
+ const r = await fetch('/api/service/status', { credentials: 'same-origin' });
1707
+ if (r.ok) return;
1708
+ } catch { /* not back yet */ }
1709
+ await new Promise(r => setTimeout(r, 700));
1710
+ }
1711
+ }
1712
+
1305
1713
  // ==========================================
1306
1714
  // API helpers
1307
1715
  // ==========================================
@@ -1313,6 +1721,8 @@
1313
1721
  defaultAgent: config.defaultAgent,
1314
1722
  telegram: config.telegram,
1315
1723
  feishu: config.feishu,
1724
+ dingtalk: config.dingtalk,
1725
+ discord: config.discord,
1316
1726
  acpAgents: config.acpAgents,
1317
1727
  webPort: config.webPort,
1318
1728
  };
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAqDA,wBAAgB,iBAAiB,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAOrE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAmlB/C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAqDA,wBAAgB,iBAAiB,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAOrE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAknB/C"}