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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prepend the wrapper bin dir to a PATH string using the platform-correct
|
|
3
|
+
* separator (':' on POSIX, ';' on Windows). Hardcoding ':' silently breaks the
|
|
4
|
+
* inherited PATH on Windows, so route every PATH prepend through here.
|
|
5
|
+
*/
|
|
6
|
+
export declare function prependBotmuxBin(binDir: string, currentPath: string | undefined, delim?: string): string;
|
|
7
|
+
export interface BotmuxWrapperFile {
|
|
8
|
+
/** Filename within ~/.botmux/bin. */
|
|
9
|
+
name: string;
|
|
10
|
+
content: string;
|
|
11
|
+
/** chmod mode (ignored on Windows). */
|
|
12
|
+
mode: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The wrapper files to materialize in ~/.botmux/bin. Always a POSIX `sh`
|
|
16
|
+
* wrapper (used by macOS/Linux and Git Bash/WSL); on Windows additionally a
|
|
17
|
+
* `botmux.cmd` so native shells (cmd.exe / PowerShell) resolve `botmux` —
|
|
18
|
+
* without it `botmux send` from a Windows-native CLI session fails. The `.cmd`
|
|
19
|
+
* pins the daemon's current Node binary so it never depends on a PATH-resolved
|
|
20
|
+
* `node`. Both wrappers point at THIS daemon's dist/cli.js.
|
|
21
|
+
*/
|
|
22
|
+
export declare function botmuxWrapperFiles(cliScript: string, nodePath: string, platform?: NodeJS.Platform): BotmuxWrapperFile[];
|
|
23
|
+
//# sourceMappingURL=botmux-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botmux-wrapper.d.ts","sourceRoot":"","sources":["../../src/core/botmux-wrapper.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,KAAK,GAAE,MAAkB,GACxB,MAAM,CAER;AAED,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,iBAAiB,EAAE,CAYrB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for the `~/.botmux/bin` wrapper that lets CLI sessions call
|
|
3
|
+
* `botmux send` / `botmux schedule` without a global npm install.
|
|
4
|
+
*
|
|
5
|
+
* Split out from worker-pool / attempt-resume / daemon so the
|
|
6
|
+
* platform-sensitive bits (PATH delimiter, Windows `.cmd` wrapper) live in one
|
|
7
|
+
* pure, unit-tested place instead of being duplicated as inline string concat.
|
|
8
|
+
*/
|
|
9
|
+
import { delimiter } from 'node:path';
|
|
10
|
+
/**
|
|
11
|
+
* Prepend the wrapper bin dir to a PATH string using the platform-correct
|
|
12
|
+
* separator (':' on POSIX, ';' on Windows). Hardcoding ':' silently breaks the
|
|
13
|
+
* inherited PATH on Windows, so route every PATH prepend through here.
|
|
14
|
+
*/
|
|
15
|
+
export function prependBotmuxBin(binDir, currentPath, delim = delimiter) {
|
|
16
|
+
return `${binDir}${delim}${currentPath ?? ''}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The wrapper files to materialize in ~/.botmux/bin. Always a POSIX `sh`
|
|
20
|
+
* wrapper (used by macOS/Linux and Git Bash/WSL); on Windows additionally a
|
|
21
|
+
* `botmux.cmd` so native shells (cmd.exe / PowerShell) resolve `botmux` —
|
|
22
|
+
* without it `botmux send` from a Windows-native CLI session fails. The `.cmd`
|
|
23
|
+
* pins the daemon's current Node binary so it never depends on a PATH-resolved
|
|
24
|
+
* `node`. Both wrappers point at THIS daemon's dist/cli.js.
|
|
25
|
+
*/
|
|
26
|
+
export function botmuxWrapperFiles(cliScript, nodePath, platform = process.platform) {
|
|
27
|
+
const files = [
|
|
28
|
+
{ name: 'botmux', content: `#!/bin/sh\nexec node "${cliScript}" "$@"\n`, mode: 0o755 },
|
|
29
|
+
];
|
|
30
|
+
if (platform === 'win32') {
|
|
31
|
+
files.push({
|
|
32
|
+
name: 'botmux.cmd',
|
|
33
|
+
content: `@echo off\r\n"${nodePath}" "${cliScript}" %*\r\n`,
|
|
34
|
+
mode: 0o755,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return files;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=botmux-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botmux-wrapper.js","sourceRoot":"","sources":["../../src/core/botmux-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,WAA+B,EAC/B,QAAgB,SAAS;IAEzB,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC;AACjD,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,QAAgB,EAChB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,KAAK,GAAwB;QACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,SAAS,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;KACvF,CAAC;IACF,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,iBAAiB,QAAQ,MAAM,SAAS,UAAU;YAC3D,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/core/command-handler.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAoF,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjJ,OAAO,EAA8D,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACtI,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAsBnG,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAA4D,MAAM,2BAA2B,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,aAA2E,CAAC;AAEpH,wBAAgB,wCAAwC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAe1E;AAID,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA0C9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKpF;AAED;;;;mCAImC;AACnC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAqB1F;AAoED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1H,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,gCAAgC,EAAE,WAAW,EAAE,CAAC,CAAC;CACnF;
|
|
1
|
+
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/core/command-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -464,28 +464,36 @@ async function handleScheduleCommand(args, rootId, chatId, deps, larkAppId) {
|
|
|
464
464
|
const ds = larkAppId ? activeSessions.get(sessionKey(rootId, larkAppId)) : undefined;
|
|
465
465
|
const workingDir = ds?.workingDir ?? (ds?.larkAppId ? getBot(ds.larkAppId).config.workingDir ?? '~' : getAllBots()[0]?.config.workingDir ?? '~');
|
|
466
466
|
const taskScope = ds?.scope === 'chat' ? 'chat' : 'thread';
|
|
467
|
+
// "新话题" keyword → every fire opens a brand-new topic in a fresh session.
|
|
468
|
+
const { deliver, prompt: schedPrompt } = scheduler.extractDeliveryMode(parsed.prompt);
|
|
469
|
+
const schedName = deliver === 'new-topic'
|
|
470
|
+
? (schedPrompt.length > 20 ? schedPrompt.slice(0, 20) + '...' : schedPrompt)
|
|
471
|
+
: parsed.name;
|
|
467
472
|
const task = scheduler.addTask({
|
|
468
|
-
name:
|
|
473
|
+
name: schedName,
|
|
469
474
|
schedule: trimmed,
|
|
470
475
|
parsed: parsed.parsed,
|
|
471
|
-
prompt:
|
|
476
|
+
prompt: schedPrompt,
|
|
472
477
|
workingDir,
|
|
473
478
|
chatId,
|
|
474
479
|
rootMessageId: taskScope === 'thread' ? rootId : undefined,
|
|
475
480
|
scope: taskScope,
|
|
476
481
|
chatType: ds?.chatType === 'p2p' ? 'p2p' : 'topic_group',
|
|
477
482
|
larkAppId,
|
|
483
|
+
deliver,
|
|
478
484
|
});
|
|
479
485
|
const next = scheduler.getNextRun(task.id);
|
|
480
486
|
const nextStr = next ? next.toLocaleString(timeLocale, { timeZone }) : 'N/A';
|
|
481
|
-
|
|
487
|
+
const createdMsg = t('schedule.created', {
|
|
482
488
|
id: task.id,
|
|
483
489
|
name: task.name,
|
|
484
490
|
rule: parsed.parsed.display,
|
|
485
491
|
prompt: task.prompt,
|
|
486
492
|
dir: expandHome(workingDir),
|
|
487
493
|
next: nextStr,
|
|
488
|
-
}, loc)
|
|
494
|
+
}, loc);
|
|
495
|
+
const deliverNote = deliver === 'new-topic' ? '\n' + t('schedule.deliver_new_topic', undefined, loc) : '';
|
|
496
|
+
await sessionReply(rootId, createdMsg + deliverNote);
|
|
489
497
|
return;
|
|
490
498
|
}
|
|
491
499
|
// Unrecognized format
|