botmux 2.82.3 → 2.84.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/README.en.md +1 -1
- package/README.md +1 -1
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +2 -42
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/mir.d.ts +4 -0
- package/dist/adapters/cli/mir.d.ts.map +1 -0
- package/dist/adapters/cli/mir.js +81 -0
- package/dist/adapters/cli/mir.js.map +1 -0
- package/dist/adapters/cli/registry.d.ts +2 -1
- package/dist/adapters/cli/registry.d.ts.map +1 -1
- package/dist/adapters/cli/registry.js +3 -1
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/shared-hints.d.ts +17 -0
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +56 -0
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +1 -1
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/autostart.d.ts.map +1 -1
- package/dist/autostart.js +161 -2
- package/dist/autostart.js.map +1 -1
- package/dist/cli/pm2-command.d.ts +1 -0
- package/dist/cli/pm2-command.d.ts.map +1 -1
- package/dist/cli/pm2-command.js +12 -0
- package/dist/cli/pm2-command.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +55 -38
- package/dist/cli.js.map +1 -1
- package/dist/core/botmux-wrapper.d.ts +23 -0
- package/dist/core/botmux-wrapper.d.ts.map +1 -0
- package/dist/core/botmux-wrapper.js +39 -0
- package/dist/core/botmux-wrapper.js.map +1 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +12 -4
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts +1 -0
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +4 -0
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/scheduler.d.ts +25 -1
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +43 -0
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +13 -2
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +20 -8
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +17 -13
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +12 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/schedules.d.ts.map +1 -1
- package/dist/dashboard/web/schedules.js +6 -2
- package/dist/dashboard/web/schedules.js.map +1 -1
- package/dist/dashboard/web/workflows.js +1 -1
- package/dist/dashboard/web/workflows.js.map +1 -1
- package/dist/dashboard-web/app.js +227 -225
- package/dist/dashboard.js +9 -6
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +2 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +2 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +1 -0
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/mir-local-runtime.d.ts +20 -0
- package/dist/mir-local-runtime.d.ts.map +1 -0
- package/dist/mir-local-runtime.js +168 -0
- package/dist/mir-local-runtime.js.map +1 -0
- package/dist/mir-runner.d.ts +3 -0
- package/dist/mir-runner.d.ts.map +1 -0
- package/dist/mir-runner.js +482 -0
- package/dist/mir-runner.js.map +1 -0
- package/dist/services/schedule-store.d.ts +2 -2
- package/dist/services/schedule-store.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +2 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/cli-selection.d.ts.map +1 -1
- package/dist/setup/cli-selection.js +74 -6
- package/dist/setup/cli-selection.js.map +1 -1
- package/dist/setup/ensure-tmux.d.ts.map +1 -1
- package/dist/setup/ensure-tmux.js +20 -3
- package/dist/setup/ensure-tmux.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +2 -1
- package/dist/skills/definitions.js.map +1 -1
- package/dist/types.d.ts +6 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.js +49 -31
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +3 -2
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/daemon-spawn.d.ts.map +1 -1
- package/dist/workflows/daemon-spawn.js +1 -0
- package/dist/workflows/daemon-spawn.js.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
- package/package.json +1 -1
package/dist/autostart.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* Linux — installs a user systemd unit at ~/.config/systemd/user/botmux.service
|
|
7
7
|
* and enables it (no sudo). Reminds the user to run
|
|
8
8
|
* `loginctl enable-linger` if the unit needs to survive logout.
|
|
9
|
+
* Windows — installs a per-user Task Scheduler task, or falls back to the
|
|
10
|
+
* current user's Startup folder if task registration is denied.
|
|
9
11
|
*
|
|
10
12
|
* The unit invokes `node <PKG_ROOT>/dist/cli.js start`, which goes through
|
|
11
13
|
* the same pm2 path as `botmux start`. PATH from the install-time shell is
|
|
@@ -18,11 +20,14 @@ import { homedir, userInfo } from 'node:os';
|
|
|
18
20
|
import { join, dirname } from 'node:path';
|
|
19
21
|
const LABEL = 'com.botmux.daemon';
|
|
20
22
|
const SERVICE_NAME = 'botmux.service';
|
|
23
|
+
const WINDOWS_TASK_NAME = 'botmux-daemon';
|
|
21
24
|
function platform() {
|
|
22
25
|
if (process.platform === 'darwin')
|
|
23
26
|
return 'macos';
|
|
24
27
|
if (process.platform === 'linux')
|
|
25
28
|
return 'linux';
|
|
29
|
+
if (process.platform === 'win32')
|
|
30
|
+
return 'windows';
|
|
26
31
|
return 'unsupported';
|
|
27
32
|
}
|
|
28
33
|
function escapeXml(s) {
|
|
@@ -289,15 +294,139 @@ function statusLinux() {
|
|
|
289
294
|
console.log(`active: ${isActive.stdout.toString().trim() || isActive.stderr.toString().trim()}`);
|
|
290
295
|
console.log(`Linger: ${lingerEnabled() ? 'yes' : 'no(登出后服务会停)'}`);
|
|
291
296
|
}
|
|
297
|
+
// ─── Windows (Task Scheduler / Startup folder) ─────────────────────────────
|
|
298
|
+
function escapeCmdValue(s) {
|
|
299
|
+
// Batch files expand %VAR% while parsing. Keep the captured PATH literal.
|
|
300
|
+
return s.replace(/\^/g, '^^').replace(/%/g, '%%');
|
|
301
|
+
}
|
|
302
|
+
function escapeVbsString(s) {
|
|
303
|
+
return s.replace(/"/g, '""');
|
|
304
|
+
}
|
|
305
|
+
function windowsScriptPath() {
|
|
306
|
+
return join(homedir(), '.botmux', 'autostart.cmd');
|
|
307
|
+
}
|
|
308
|
+
function windowsStartupDir() {
|
|
309
|
+
return join(process.env.APPDATA || join(homedir(), 'AppData', 'Roaming'), 'Microsoft', 'Windows', 'Start Menu', 'Programs', 'Startup');
|
|
310
|
+
}
|
|
311
|
+
function windowsStartupLauncherPath() {
|
|
312
|
+
return join(windowsStartupDir(), 'botmux-autostart.vbs');
|
|
313
|
+
}
|
|
314
|
+
function windowsLogPath(opts, name) {
|
|
315
|
+
return join(opts.logDir, name);
|
|
316
|
+
}
|
|
317
|
+
function windowsScriptContent(opts) {
|
|
318
|
+
const path = escapeCmdValue(currentPath());
|
|
319
|
+
const cwd = opts.configDir;
|
|
320
|
+
const outLog = windowsLogPath(opts, 'autostart-out.log');
|
|
321
|
+
const errLog = windowsLogPath(opts, 'autostart-err.log');
|
|
322
|
+
return `@echo off
|
|
323
|
+
setlocal
|
|
324
|
+
set "PATH=${path}"
|
|
325
|
+
cd /d "${cwd}"
|
|
326
|
+
"${nodeBin()}" "${cliJs(opts)}" start >> "${outLog}" 2>> "${errLog}"
|
|
327
|
+
`;
|
|
328
|
+
}
|
|
329
|
+
function windowsLauncherContent(scriptPath) {
|
|
330
|
+
const script = escapeVbsString(scriptPath);
|
|
331
|
+
return `Set shell = CreateObject("WScript.Shell")
|
|
332
|
+
shell.Run Chr(34) & "${script}" & Chr(34), 0, False
|
|
333
|
+
`;
|
|
334
|
+
}
|
|
335
|
+
function windowsTaskExists() {
|
|
336
|
+
const r = spawnSync('schtasks', ['/Query', '/TN', WINDOWS_TASK_NAME], { stdio: 'pipe' });
|
|
337
|
+
return r.status === 0;
|
|
338
|
+
}
|
|
339
|
+
function createWindowsTask(scriptPath) {
|
|
340
|
+
return spawnSync('schtasks', ['/Create', '/TN', WINDOWS_TASK_NAME, '/SC', 'ONLOGON', '/TR', `"${scriptPath}"`, '/F'], { stdio: 'pipe' });
|
|
341
|
+
}
|
|
342
|
+
function writeWindowsStartupLauncher(scriptPath) {
|
|
343
|
+
const launcher = windowsStartupLauncherPath();
|
|
344
|
+
mkdirSync(dirname(launcher), { recursive: true });
|
|
345
|
+
writeFileSync(launcher, windowsLauncherContent(scriptPath));
|
|
346
|
+
return launcher;
|
|
347
|
+
}
|
|
348
|
+
function enableWindows(opts) {
|
|
349
|
+
const script = windowsScriptPath();
|
|
350
|
+
mkdirSync(dirname(script), { recursive: true });
|
|
351
|
+
mkdirSync(opts.logDir, { recursive: true });
|
|
352
|
+
writeFileSync(script, windowsScriptContent(opts));
|
|
353
|
+
console.log(`✅ 已写入 Windows 启动脚本: ${script}`);
|
|
354
|
+
const r = createWindowsTask(script);
|
|
355
|
+
if (r.status === 0) {
|
|
356
|
+
console.log(`✅ 已创建/更新 Windows 任务计划: ${WINDOWS_TASK_NAME}`);
|
|
357
|
+
const launcher = windowsStartupLauncherPath();
|
|
358
|
+
if (existsSync(launcher)) {
|
|
359
|
+
unlinkSync(launcher);
|
|
360
|
+
console.log(`✅ 已清理 Startup 回退启动器: ${launcher}`);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
const msg = (r.stderr.toString() || r.stdout.toString()).trim();
|
|
365
|
+
console.warn(`⚠️ 任务计划创建失败,改用当前用户 Startup 文件夹自启。`);
|
|
366
|
+
if (msg)
|
|
367
|
+
console.warn(msg);
|
|
368
|
+
const launcher = writeWindowsStartupLauncher(script);
|
|
369
|
+
console.log(`✅ 已写入 Startup 启动器: ${launcher}`);
|
|
370
|
+
}
|
|
371
|
+
console.log(` 下次登录 Windows 时自动启动。立即启动: botmux start`);
|
|
372
|
+
}
|
|
373
|
+
function disableWindows() {
|
|
374
|
+
const r = spawnSync('schtasks', ['/Delete', '/TN', WINDOWS_TASK_NAME, '/F'], { stdio: 'pipe' });
|
|
375
|
+
if (r.status === 0) {
|
|
376
|
+
console.log(`✅ 已删除 Windows 任务计划: ${WINDOWS_TASK_NAME}`);
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
console.warn(`⚠️ 删除任务计划返回非零(可能本来就未启用)`);
|
|
380
|
+
const msg = (r.stderr.toString() || r.stdout.toString()).trim();
|
|
381
|
+
if (msg)
|
|
382
|
+
console.warn(msg);
|
|
383
|
+
}
|
|
384
|
+
const launcher = windowsStartupLauncherPath();
|
|
385
|
+
if (existsSync(launcher)) {
|
|
386
|
+
unlinkSync(launcher);
|
|
387
|
+
console.log(`✅ 已删除 ${launcher}`);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
console.log(`ℹ️ ${launcher} 不存在`);
|
|
391
|
+
}
|
|
392
|
+
const script = windowsScriptPath();
|
|
393
|
+
if (existsSync(script)) {
|
|
394
|
+
unlinkSync(script);
|
|
395
|
+
console.log(`✅ 已删除 ${script}`);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
console.log(`ℹ️ ${script} 不存在`);
|
|
399
|
+
}
|
|
400
|
+
console.log(` pm2 daemon 仍在运行;要停止请跑 botmux stop`);
|
|
401
|
+
}
|
|
402
|
+
function statusWindows() {
|
|
403
|
+
const script = windowsScriptPath();
|
|
404
|
+
const launcher = windowsStartupLauncherPath();
|
|
405
|
+
console.log(`平台: Windows (Task Scheduler / Startup folder)`);
|
|
406
|
+
console.log(`任务名称: ${WINDOWS_TASK_NAME}`);
|
|
407
|
+
console.log(`启动脚本: ${script}`);
|
|
408
|
+
console.log(`启动脚本存在: ${existsSync(script) ? 'yes' : 'no'}`);
|
|
409
|
+
console.log(`Startup 启动器: ${launcher}`);
|
|
410
|
+
console.log(`Startup 启动器存在: ${existsSync(launcher) ? 'yes' : 'no'}`);
|
|
411
|
+
const r = spawnSync('schtasks', ['/Query', '/TN', WINDOWS_TASK_NAME, '/FO', 'LIST', '/V'], { stdio: 'pipe' });
|
|
412
|
+
if (r.status === 0) {
|
|
413
|
+
console.log(`任务计划存在: yes`);
|
|
414
|
+
const text = r.stdout.toString().trim();
|
|
415
|
+
if (text)
|
|
416
|
+
console.log(text);
|
|
417
|
+
}
|
|
418
|
+
else {
|
|
419
|
+
console.log(`任务计划存在: no`);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
292
422
|
// ─── Public dispatch ─────────────────────────────────────────────────────────
|
|
293
423
|
export function enableAutostart(opts) {
|
|
294
424
|
switch (platform()) {
|
|
295
425
|
case 'macos': return enableMac(opts);
|
|
296
426
|
case 'linux': return enableLinux(opts);
|
|
427
|
+
case 'windows': return enableWindows(opts);
|
|
297
428
|
default:
|
|
298
429
|
console.error(`❌ 当前平台 ${process.platform} 暂不支持 botmux autostart。`);
|
|
299
|
-
console.error(` Windows 用户可用任务计划程序 (Task Scheduler) 调用:`);
|
|
300
|
-
console.error(` ${nodeBin()} ${cliJs(opts)} start`);
|
|
301
430
|
process.exit(1);
|
|
302
431
|
}
|
|
303
432
|
}
|
|
@@ -305,6 +434,7 @@ export function disableAutostart(_opts) {
|
|
|
305
434
|
switch (platform()) {
|
|
306
435
|
case 'macos': return disableMac();
|
|
307
436
|
case 'linux': return disableLinux();
|
|
437
|
+
case 'windows': return disableWindows();
|
|
308
438
|
default:
|
|
309
439
|
console.error(`❌ 当前平台 ${process.platform} 暂不支持 botmux autostart。`);
|
|
310
440
|
process.exit(1);
|
|
@@ -314,6 +444,7 @@ export function autostartStatus(_opts) {
|
|
|
314
444
|
switch (platform()) {
|
|
315
445
|
case 'macos': return statusMac();
|
|
316
446
|
case 'linux': return statusLinux();
|
|
447
|
+
case 'windows': return statusWindows();
|
|
317
448
|
default:
|
|
318
449
|
console.log(`平台: ${process.platform} (不支持)`);
|
|
319
450
|
}
|
|
@@ -351,6 +482,34 @@ export function refreshAutostart(opts) {
|
|
|
351
482
|
}
|
|
352
483
|
return true;
|
|
353
484
|
}
|
|
485
|
+
case 'windows': {
|
|
486
|
+
const script = windowsScriptPath();
|
|
487
|
+
const launcher = windowsStartupLauncherPath();
|
|
488
|
+
if (!existsSync(script) && !existsSync(launcher) && !windowsTaskExists())
|
|
489
|
+
return false;
|
|
490
|
+
mkdirSync(dirname(script), { recursive: true });
|
|
491
|
+
mkdirSync(opts.logDir, { recursive: true });
|
|
492
|
+
const next = windowsScriptContent(opts);
|
|
493
|
+
const prev = existsSync(script) ? readFileSync(script, 'utf-8') : '';
|
|
494
|
+
let changed = prev !== next;
|
|
495
|
+
if (changed)
|
|
496
|
+
writeFileSync(script, next);
|
|
497
|
+
const task = createWindowsTask(script);
|
|
498
|
+
if (task.status === 0) {
|
|
499
|
+
if (existsSync(launcher)) {
|
|
500
|
+
unlinkSync(launcher);
|
|
501
|
+
changed = true;
|
|
502
|
+
}
|
|
503
|
+
return changed;
|
|
504
|
+
}
|
|
505
|
+
const nextLauncher = windowsLauncherContent(script);
|
|
506
|
+
const prevLauncher = existsSync(launcher) ? readFileSync(launcher, 'utf-8') : '';
|
|
507
|
+
if (prevLauncher !== nextLauncher) {
|
|
508
|
+
writeWindowsStartupLauncher(script);
|
|
509
|
+
changed = true;
|
|
510
|
+
}
|
|
511
|
+
return changed;
|
|
512
|
+
}
|
|
354
513
|
default: return false;
|
|
355
514
|
}
|
|
356
515
|
}
|
package/dist/autostart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autostart.js","sourceRoot":"","sources":["../src/autostart.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autostart.js","sourceRoot":"","sources":["../src/autostart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export interface SpawnCommand {
|
|
2
2
|
command: string;
|
|
3
3
|
args: string[];
|
|
4
|
+
shell?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export declare function buildPm2SpawnCommand(pm2Script: string, args: string[], platform?: NodeJS.Platform, nodePath?: string): SpawnCommand;
|
|
6
7
|
//# sourceMappingURL=pm2-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pm2-command.d.ts","sourceRoot":"","sources":["../../src/cli/pm2-command.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"pm2-command.d.ts","sourceRoot":"","sources":["../../src/cli/pm2-command.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,QAAQ,GAAE,MAAyB,GAClC,YAAY,CAiBd"}
|
package/dist/cli/pm2-command.js
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
export function buildPm2SpawnCommand(pm2Script, args, platform = process.platform, nodePath = process.execPath) {
|
|
2
2
|
if (platform === 'win32' && pm2Script !== 'pm2') {
|
|
3
|
+
if (pm2Script.toLowerCase().endsWith('.cmd')) {
|
|
4
|
+
// Node's spawn with `{ shell: true }` does NOT quote the command or args —
|
|
5
|
+
// it joins them verbatim into the cmd.exe command line. Without quoting, a
|
|
6
|
+
// space anywhere (the pm2.cmd path under "C:\Program Files\…", or the
|
|
7
|
+
// ecosystem config path under "C:\Users\First Last\.botmux\…") gets
|
|
8
|
+
// word-split by cmd.exe and pm2 receives a truncated path. Wrap each token
|
|
9
|
+
// in double quotes; cmd.exe (/s) strips them when it re-parses, and the
|
|
10
|
+
// npm .cmd shim forwards the quoted args through %* intact. Windows paths
|
|
11
|
+
// can't contain `"`, so simple wrapping is sufficient here.
|
|
12
|
+
const quote = (s) => `"${s}"`;
|
|
13
|
+
return { command: quote(pm2Script), args: args.map(quote), shell: true };
|
|
14
|
+
}
|
|
3
15
|
return { command: nodePath, args: [pm2Script, ...args] };
|
|
4
16
|
}
|
|
5
17
|
return { command: pm2Script, args };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pm2-command.js","sourceRoot":"","sources":["../../src/cli/pm2-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pm2-command.js","sourceRoot":"","sources":["../../src/cli/pm2-command.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,IAAc,EACd,WAA4B,OAAO,CAAC,QAAQ,EAC5C,WAAmB,OAAO,CAAC,QAAQ;IAEnC,IAAI,QAAQ,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,2EAA2E;YAC3E,2EAA2E;YAC3E,sEAAsE;YACtE,oEAAoE;YACpE,2EAA2E;YAC3E,wEAAwE;YACxE,0EAA0E;YAC1E,4DAA4D;YAC5D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC"}
|
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":";AAu+IA;;;;;;;;;;;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,CA8F7B"}
|
package/dist/cli.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* botmux list --plain — plain table output (for piping / scripts)
|
|
16
16
|
* botmux delete <id> — close a session by ID prefix
|
|
17
17
|
* botmux delete all — close all active sessions
|
|
18
|
-
* botmux autostart enable|disable|status — manage boot-time autostart (launchd / user systemd)
|
|
18
|
+
* botmux autostart enable|disable|status — manage boot-time autostart (launchd / user systemd / Windows Task Scheduler)
|
|
19
19
|
*/
|
|
20
20
|
import { execSync, execFileSync, spawnSync, spawn } from 'node:child_process';
|
|
21
21
|
import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync, renameSync, readdirSync, readlinkSync, appendFileSync, statSync, unlinkSync } from 'node:fs';
|
|
@@ -96,6 +96,11 @@ function ensureConfigDir() {
|
|
|
96
96
|
* may belong to an unrelated installation (e.g. IDE remote extensions).
|
|
97
97
|
*/
|
|
98
98
|
function pm2Bin() {
|
|
99
|
+
if (process.platform === 'win32') {
|
|
100
|
+
const cmd = join(PKG_ROOT, 'node_modules', '.bin', 'pm2.cmd');
|
|
101
|
+
if (existsSync(cmd))
|
|
102
|
+
return cmd;
|
|
103
|
+
}
|
|
99
104
|
try {
|
|
100
105
|
return require.resolve('pm2/bin/pm2');
|
|
101
106
|
}
|
|
@@ -173,11 +178,41 @@ function killDuplicatePm2GodDaemons(home = PM2_HOME) {
|
|
|
173
178
|
console.warn(`⚠️ 检测到同一 PM2_HOME (${home}) 下存在多个 PM2 God Daemon,已清理重复实例;保留 pid ${keepPid},移除: ${dupes.join(', ')}`);
|
|
174
179
|
return true;
|
|
175
180
|
}
|
|
176
|
-
function runPm2(args, inherit = true, home = PM2_HOME) {
|
|
177
|
-
|
|
181
|
+
function runPm2(args, inherit = true, home = PM2_HOME, timeoutMs) {
|
|
182
|
+
const pm2 = buildPm2SpawnCommand(pm2Bin(), args);
|
|
183
|
+
const r = spawnSync(pm2.command, pm2.args, {
|
|
178
184
|
stdio: inherit ? 'inherit' : 'pipe',
|
|
179
185
|
env: pm2Env(home),
|
|
186
|
+
shell: pm2.shell ?? false,
|
|
187
|
+
timeout: timeoutMs,
|
|
180
188
|
});
|
|
189
|
+
if (r.status !== 0) {
|
|
190
|
+
// r.error is set when the process couldn't be spawned/timed out (status null);
|
|
191
|
+
// prefer it so failures don't surface as a bare "status null".
|
|
192
|
+
const detail = r.error?.message ?? `status ${r.status}`;
|
|
193
|
+
throw new Error(`pm2 ${args.join(' ')} failed: ${detail}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Run a pm2 command and capture stdout. Routes through buildPm2SpawnCommand so
|
|
198
|
+
* it works on Windows (where pm2Bin() resolves to a `.cmd` that must run through
|
|
199
|
+
* a shell) as well as macOS/Linux. Throws on non-zero exit / spawn failure.
|
|
200
|
+
*/
|
|
201
|
+
function pm2Capture(args, home = PM2_HOME, timeoutMs = 10_000) {
|
|
202
|
+
const pm2 = buildPm2SpawnCommand(pm2Bin(), args);
|
|
203
|
+
const r = spawnSync(pm2.command, pm2.args, {
|
|
204
|
+
encoding: 'utf-8',
|
|
205
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
206
|
+
env: pm2Env(home),
|
|
207
|
+
shell: pm2.shell ?? false,
|
|
208
|
+
timeout: timeoutMs,
|
|
209
|
+
});
|
|
210
|
+
if (r.status !== 0) {
|
|
211
|
+
const detail = r.error?.message
|
|
212
|
+
?? ((r.stderr ? String(r.stderr).trim() : '') || `status ${r.status}`);
|
|
213
|
+
throw new Error(`pm2 ${args.join(' ')} failed: ${detail}`);
|
|
214
|
+
}
|
|
215
|
+
return typeof r.stdout === 'string' ? r.stdout : '';
|
|
181
216
|
}
|
|
182
217
|
function loadBotsJson() {
|
|
183
218
|
if (existsSync(BOTS_JSON_FILE)) {
|
|
@@ -771,7 +806,7 @@ async function writeSingleBotConfig() {
|
|
|
771
806
|
await finishOpenPlatformSetup(bot.larkAppId, botBrand(bot));
|
|
772
807
|
console.log(`下一步:`);
|
|
773
808
|
console.log(` 1. botmux start 启动 daemon`);
|
|
774
|
-
console.log(` 2. botmux autostart enable 注册开机自启(推荐:${process.platform === 'darwin' ? 'mac launchd' : process.platform === 'linux' ? 'linux user systemd' : '当前平台暂不支持'},无需 sudo)`);
|
|
809
|
+
console.log(` 2. botmux autostart enable 注册开机自启(推荐:${process.platform === 'darwin' ? 'mac launchd' : process.platform === 'linux' ? 'linux user systemd' : process.platform === 'win32' ? 'Windows Task Scheduler' : '当前平台暂不支持'},无需 sudo)`);
|
|
775
810
|
return true;
|
|
776
811
|
}
|
|
777
812
|
// ─── Commands ────────────────────────────────────────────────────────────────
|
|
@@ -987,7 +1022,7 @@ function preflightNodeSanity() {
|
|
|
987
1022
|
console.warn(`⚠️ pm2 god daemon (pid ${pm2Pid}) 使用的 Node 二进制已失效: ${cleanPath}`);
|
|
988
1023
|
console.warn(` 自动杀掉 pm2 god 以便用当前 Node 重启...`);
|
|
989
1024
|
try {
|
|
990
|
-
|
|
1025
|
+
runPm2(['kill'], false, PM2_HOME, 10_000);
|
|
991
1026
|
}
|
|
992
1027
|
catch {
|
|
993
1028
|
try {
|
|
@@ -1104,21 +1139,12 @@ function cleanupStaleDaemonDescriptors() {
|
|
|
1104
1139
|
/** Delete all pm2 processes matching botmux / botmux-* under the given PM2_HOME. */
|
|
1105
1140
|
function deleteAllBotmuxProcesses(home = PM2_HOME) {
|
|
1106
1141
|
try {
|
|
1107
|
-
const output =
|
|
1108
|
-
encoding: 'utf-8',
|
|
1109
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
1110
|
-
env: pm2Env(home),
|
|
1111
|
-
timeout: 10_000,
|
|
1112
|
-
});
|
|
1142
|
+
const output = pm2Capture(['jlist'], home);
|
|
1113
1143
|
const apps = JSON.parse(output);
|
|
1114
1144
|
for (const app of apps) {
|
|
1115
1145
|
if (app.name === PM2_NAME || app.name.startsWith(`${PM2_NAME}-`)) {
|
|
1116
1146
|
try {
|
|
1117
|
-
|
|
1118
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
1119
|
-
env: pm2Env(home),
|
|
1120
|
-
timeout: 10_000,
|
|
1121
|
-
});
|
|
1147
|
+
runPm2(['delete', app.name], false, home, 10_000);
|
|
1122
1148
|
}
|
|
1123
1149
|
catch (e) {
|
|
1124
1150
|
// Don't swallow silently — a failed delete here used to leave the
|
|
@@ -1135,11 +1161,7 @@ function deleteAllBotmuxProcesses(home = PM2_HOME) {
|
|
|
1135
1161
|
}
|
|
1136
1162
|
function killPm2GodDaemon(home = PM2_HOME) {
|
|
1137
1163
|
try {
|
|
1138
|
-
|
|
1139
|
-
stdio: 'inherit',
|
|
1140
|
-
env: pm2Env(home),
|
|
1141
|
-
timeout: 15_000,
|
|
1142
|
-
});
|
|
1164
|
+
runPm2(['kill'], true, home, 15_000);
|
|
1143
1165
|
return;
|
|
1144
1166
|
}
|
|
1145
1167
|
catch {
|
|
@@ -1197,12 +1219,7 @@ function cmdStop() {
|
|
|
1197
1219
|
cleanupLegacyPm2();
|
|
1198
1220
|
let stopped = false;
|
|
1199
1221
|
try {
|
|
1200
|
-
const output =
|
|
1201
|
-
encoding: 'utf-8',
|
|
1202
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
1203
|
-
env: pm2Env(),
|
|
1204
|
-
timeout: 10_000,
|
|
1205
|
-
});
|
|
1222
|
+
const output = pm2Capture(['jlist']);
|
|
1206
1223
|
const apps = JSON.parse(output);
|
|
1207
1224
|
for (const app of apps) {
|
|
1208
1225
|
if (app.name === PM2_NAME || app.name.startsWith(`${PM2_NAME}-`)) {
|
|
@@ -1298,12 +1315,7 @@ function warnIfLegacyBotmuxAlive() {
|
|
|
1298
1315
|
return;
|
|
1299
1316
|
}
|
|
1300
1317
|
try {
|
|
1301
|
-
const output =
|
|
1302
|
-
encoding: 'utf-8',
|
|
1303
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
1304
|
-
env: pm2Env(legacyHome),
|
|
1305
|
-
timeout: 10_000,
|
|
1306
|
-
});
|
|
1318
|
+
const output = pm2Capture(['jlist'], legacyHome);
|
|
1307
1319
|
const apps = JSON.parse(output);
|
|
1308
1320
|
const hasBotmux = apps.some(a => a.name === PM2_NAME || a.name.startsWith(`${PM2_NAME}-`));
|
|
1309
1321
|
if (hasBotmux) {
|
|
@@ -1347,6 +1359,7 @@ function cmdLogs() {
|
|
|
1347
1359
|
const child = spawn(pm2.command, pm2.args, {
|
|
1348
1360
|
stdio: 'inherit',
|
|
1349
1361
|
env: pm2Env(),
|
|
1362
|
+
shell: pm2.shell ?? false,
|
|
1350
1363
|
});
|
|
1351
1364
|
child.on('exit', code => process.exit(code ?? 0));
|
|
1352
1365
|
}
|
|
@@ -2444,7 +2457,7 @@ botmux v${getVersion()} — IM ↔ AI 编程 CLI 桥接
|
|
|
2444
2457
|
term-link [id] 获取活跃会话的「可操作终端」(带写 token)。不回显链接,改由
|
|
2445
2458
|
daemon 把可操作卡片私密发给 owner(群内仅你可见,话题/单聊回退 DM)。
|
|
2446
2459
|
单个活跃会话可省略 id
|
|
2447
|
-
autostart enable 注册开机自启(macOS launchd / Linux user systemd,无需 sudo)
|
|
2460
|
+
autostart enable 注册开机自启(macOS launchd / Linux user systemd / Windows Task Scheduler,无需 sudo)
|
|
2448
2461
|
autostart disable 注销开机自启
|
|
2449
2462
|
autostart status 查看自启状态
|
|
2450
2463
|
unset 清除 worker 预算覆盖,恢复按机器 CPU/内存自动推导
|
|
@@ -2458,6 +2471,7 @@ botmux v${getVersion()} — IM ↔ AI 编程 CLI 桥接
|
|
|
2458
2471
|
定时任务(可在 CLI 会话内自动推断 chat):
|
|
2459
2472
|
schedule list 列出所有任务
|
|
2460
2473
|
schedule add <schedule> <prompt> 添加任务(ex: "30m" / "every 2h" / "每日9:00" / "0 9 * * *")
|
|
2474
|
+
--new-topic 每次触发在同群开一个新话题、起独立会话(不续旧话题)
|
|
2461
2475
|
schedule remove <id> 删除任务
|
|
2462
2476
|
schedule pause|resume <id> 暂停/恢复
|
|
2463
2477
|
schedule run <id> 标记立即执行
|
|
@@ -2625,9 +2639,9 @@ async function cmdSchedule(sub, rest) {
|
|
|
2625
2639
|
return;
|
|
2626
2640
|
}
|
|
2627
2641
|
if (sub === 'add') {
|
|
2628
|
-
const [rawSchedule, ...promptParts] = positionals(rest);
|
|
2642
|
+
const [rawSchedule, ...promptParts] = positionals(rest, ['--new-topic']);
|
|
2629
2643
|
if (!rawSchedule) {
|
|
2630
|
-
console.error('用法: botmux schedule add <schedule> <prompt> [--name NAME] [--chat-id CHAT] [--root-msg-id ROOT] [--lark-app-id APP] [--workdir DIR]');
|
|
2644
|
+
console.error('用法: botmux schedule add <schedule> <prompt> [--name NAME] [--chat-id CHAT] [--root-msg-id ROOT] [--lark-app-id APP] [--workdir DIR] [--new-topic]');
|
|
2631
2645
|
process.exit(1);
|
|
2632
2646
|
}
|
|
2633
2647
|
// prompt may come from positional or --prompt flag
|
|
@@ -2642,7 +2656,10 @@ async function cmdSchedule(sub, rest) {
|
|
|
2642
2656
|
const larkAppId = argValue(rest, '--lark-app-id') ?? cur?.larkAppId;
|
|
2643
2657
|
const workingDir = argValue(rest, '--workdir') ?? cur?.workingDir ?? process.cwd();
|
|
2644
2658
|
const name = argValue(rest, '--name') ?? (promptArg.length > 20 ? promptArg.slice(0, 20) + '…' : promptArg);
|
|
2645
|
-
|
|
2659
|
+
// --new-topic: every fire opens a brand-new topic in a fresh session.
|
|
2660
|
+
const deliver = rest.includes('--new-topic')
|
|
2661
|
+
? 'new-topic'
|
|
2662
|
+
: (argValue(rest, '--deliver') ?? 'origin');
|
|
2646
2663
|
if (!chatId) {
|
|
2647
2664
|
console.error('无法推断 chat-id。请加上 --chat-id <CHAT_ID>,或从 Lark 话题内的 CLI 会话中运行本命令。');
|
|
2648
2665
|
process.exit(1);
|
|
@@ -2675,7 +2692,7 @@ async function cmdSchedule(sub, rest) {
|
|
|
2675
2692
|
console.log(` 规则: ${parsed.display}`);
|
|
2676
2693
|
console.log(` 下次执行: ${next}`);
|
|
2677
2694
|
console.log(` 工作目录: ${workingDir}`);
|
|
2678
|
-
console.log(` 话题: ${rootMessageId ?? '(将新开)'}`);
|
|
2695
|
+
console.log(` 话题: ${deliver === 'new-topic' ? '(每次新开话题,独立会话)' : rootMessageId ?? '(将新开)'}`);
|
|
2679
2696
|
return;
|
|
2680
2697
|
}
|
|
2681
2698
|
const id = positionals(rest)[0];
|