botmux 2.55.0 → 2.56.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/adapters/backend/herdr-backend.d.ts +80 -0
- package/dist/adapters/backend/herdr-backend.d.ts.map +1 -0
- package/dist/adapters/backend/herdr-backend.js +519 -0
- package/dist/adapters/backend/herdr-backend.js.map +1 -0
- package/dist/adapters/backend/session-backend-selector.d.ts +2 -2
- package/dist/adapters/backend/session-backend-selector.d.ts.map +1 -1
- package/dist/adapters/backend/session-backend-selector.js +19 -1
- package/dist/adapters/backend/session-backend-selector.js.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +29 -0
- package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +51 -4
- package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
- package/dist/adapters/backend/types.d.ts +7 -0
- package/dist/adapters/backend/types.d.ts.map +1 -1
- package/dist/adapters/backend/types.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +11 -0
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/bot-registry.d.ts +2 -1
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +262 -15
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -3
- package/dist/config.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +12 -7
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/pending-response.d.ts +16 -1
- package/dist/core/pending-response.d.ts.map +1 -1
- package/dist/core/pending-response.js +19 -1
- package/dist/core/pending-response.js.map +1 -1
- package/dist/core/session-discovery.d.ts +20 -4
- package/dist/core/session-discovery.d.ts.map +1 -1
- package/dist/core/session-discovery.js +228 -72
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +77 -45
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +8 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +74 -62
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.js +4 -4
- package/dist/daemon.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +1 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +1 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +2 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +19 -2
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +5 -3
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/event-dispatcher.js +3 -3
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/setup/agent-preset.d.ts +78 -0
- package/dist/setup/agent-preset.d.ts.map +1 -0
- package/dist/setup/agent-preset.js +127 -0
- package/dist/setup/agent-preset.js.map +1 -0
- package/dist/setup/bot-config-editor.js +2 -2
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/ensure-herdr-integrations.d.ts +26 -0
- package/dist/setup/ensure-herdr-integrations.d.ts.map +1 -0
- package/dist/setup/ensure-herdr-integrations.js +127 -0
- package/dist/setup/ensure-herdr-integrations.js.map +1 -0
- package/dist/setup/ensure-herdr.d.ts +12 -0
- package/dist/setup/ensure-herdr.d.ts.map +1 -0
- package/dist/setup/ensure-herdr.js +70 -0
- package/dist/setup/ensure-herdr.js.map +1 -0
- package/dist/setup/ensure-opus.d.ts +13 -0
- package/dist/setup/ensure-opus.d.ts.map +1 -0
- package/dist/setup/ensure-opus.js +64 -0
- package/dist/setup/ensure-opus.js.map +1 -0
- package/dist/setup/ensure-tmux.d.ts +13 -0
- package/dist/setup/ensure-tmux.d.ts.map +1 -1
- package/dist/setup/ensure-tmux.js +4 -4
- package/dist/setup/ensure-tmux.js.map +1 -1
- package/dist/setup/index.d.ts +4 -0
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +78 -1
- package/dist/setup/index.js.map +1 -1
- package/dist/types.d.ts +14 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/transient-snapshot.d.ts +3 -3
- package/dist/utils/transient-snapshot.js +3 -3
- package/dist/worker.js +251 -179
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts +2 -1
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/definition.d.ts +22 -22
- package/package.json +1 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure the `herdr` binary is installed before HerdrBackend tries to spawn
|
|
3
|
+
* agents. Strategy is intentionally narrow per user request — only the
|
|
4
|
+
* official curl installer (https://herdr.dev/install.sh) is used; brew/nix
|
|
5
|
+
* paths exist in the upstream docs but live outside our auto-bootstrap.
|
|
6
|
+
*
|
|
7
|
+
* Like ensureTmux, herdr is treated as nice-to-have at this layer: a failed
|
|
8
|
+
* install never throws. The caller (ensureDependencies) decides whether to
|
|
9
|
+
* surface the warning, and HerdrBackend itself will refuse to run when the
|
|
10
|
+
* binary is missing — falling back to PTY/tmux through bots.json's
|
|
11
|
+
* backendType remains the user's responsibility.
|
|
12
|
+
*/
|
|
13
|
+
import { execSync, spawnSync } from 'node:child_process';
|
|
14
|
+
/** Probe `herdr --version` (or `-V`). Returns the trimmed version string, or
|
|
15
|
+
* undefined if the binary is missing / errors out. */
|
|
16
|
+
function probeHerdrVersion() {
|
|
17
|
+
try {
|
|
18
|
+
const out = execSync('herdr --version', {
|
|
19
|
+
encoding: 'utf-8',
|
|
20
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
21
|
+
timeout: 3000,
|
|
22
|
+
});
|
|
23
|
+
return out.trim();
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Run `curl -fsSL https://herdr.dev/install.sh | sh`. Returns true on
|
|
30
|
+
* exit 0. Output is inherited so the user sees the installer's progress
|
|
31
|
+
* and any error it prints. */
|
|
32
|
+
function runCurlInstaller() {
|
|
33
|
+
// Use bash -c with a pipeline so we can capture failure of either side via
|
|
34
|
+
// pipefail. Without pipefail, `curl ... | sh` reports `sh`'s status only,
|
|
35
|
+
// which is useless when the network fetch silently 404s.
|
|
36
|
+
const cmd = 'set -o pipefail; curl -fsSL https://herdr.dev/install.sh | sh';
|
|
37
|
+
const result = spawnSync('bash', ['-c', cmd], {
|
|
38
|
+
stdio: 'inherit',
|
|
39
|
+
timeout: 5 * 60_000, // 5 min — slow networks downloading a release binary
|
|
40
|
+
});
|
|
41
|
+
return result.status === 0;
|
|
42
|
+
}
|
|
43
|
+
export async function ensureHerdr() {
|
|
44
|
+
const existing = probeHerdrVersion();
|
|
45
|
+
if (existing) {
|
|
46
|
+
return { installed: true, version: existing, freshInstall: false };
|
|
47
|
+
}
|
|
48
|
+
console.log('⚠️ herdr 未检测到,正在通过官方 install.sh 安装...');
|
|
49
|
+
const ok = runCurlInstaller();
|
|
50
|
+
if (ok) {
|
|
51
|
+
const after = probeHerdrVersion();
|
|
52
|
+
if (after) {
|
|
53
|
+
console.log(`✅ herdr ${after} 安装完成`);
|
|
54
|
+
return { installed: true, version: after, freshInstall: true };
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
installed: false,
|
|
58
|
+
freshInstall: true,
|
|
59
|
+
reason: '安装脚本返回 0,但 PATH 上仍找不到 herdr — 可能装到了非 PATH 目录,请重启 shell 或检查 ~/.local/bin / ~/.cargo/bin 是否在 PATH 中',
|
|
60
|
+
manualCommand: 'curl -fsSL https://herdr.dev/install.sh | sh',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
installed: false,
|
|
65
|
+
freshInstall: false,
|
|
66
|
+
reason: '官方 install.sh 执行失败(curl/网络/权限问题)',
|
|
67
|
+
manualCommand: 'curl -fsSL https://herdr.dev/install.sh | sh',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ensure-herdr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-herdr.js","sourceRoot":"","sources":["../../src/setup/ensure-herdr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAazD;uDACuD;AACvD,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,EAAE;YACtC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;+BAE+B;AAC/B,SAAS,gBAAgB;IACvB,2EAA2E;IAC3E,0EAA0E;IAC1E,yDAAyD;IACzD,MAAM,GAAG,GAAG,+DAA+D,CAAC;IAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QAC5C,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,qDAAqD;KAC3E,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACrE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC;YACrC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACjE,CAAC;QACD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,mGAAmG;YAC3G,aAAa,EAAE,8CAA8C;SAC9D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,MAAM,EAAE,kCAAkC;QAC1C,aAAa,EAAE,8CAA8C;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type PlatformInfo } from './detect-platform.js';
|
|
2
|
+
export interface OpusToolsResult {
|
|
3
|
+
installed: boolean;
|
|
4
|
+
version?: string;
|
|
5
|
+
/** True iff we ran an installer (vs. it was already present). */
|
|
6
|
+
freshInstall: boolean;
|
|
7
|
+
reason?: string;
|
|
8
|
+
manualCommand?: string;
|
|
9
|
+
}
|
|
10
|
+
/** `opusenc --version` → first line, or undefined if the binary is absent. */
|
|
11
|
+
export declare function probeOpusenc(): string | undefined;
|
|
12
|
+
export declare function ensureOpusTools(info?: PlatformInfo): Promise<OpusToolsResult>;
|
|
13
|
+
//# sourceMappingURL=ensure-opus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-opus.d.ts","sourceRoot":"","sources":["../../src/setup/ensure-opus.ts"],"names":[],"mappings":"AAWA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKzE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAIjD;AAED,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAqCnF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure `opusenc` (opus-tools) is installed — the voice-summary feature
|
|
3
|
+
* encodes synthesized PCM into the ogg/opus a Feishu voice bubble needs.
|
|
4
|
+
*
|
|
5
|
+
* Reuses the same package-manager / sudo machinery as ensure-tmux
|
|
6
|
+
* (brew / conda / apt / dnf / yum / pacman / apk / zypper, NOPASSWD-sudo or
|
|
7
|
+
* TTY-prompt escalation). Like tmux it's non-fatal: callers inspect the
|
|
8
|
+
* result and fall back to a manual hint. Package name `opus-tools` is the
|
|
9
|
+
* same across every supported manager; the binary it provides is `opusenc`.
|
|
10
|
+
*/
|
|
11
|
+
import { spawnSync } from 'node:child_process';
|
|
12
|
+
import { detectPlatform } from './detect-platform.js';
|
|
13
|
+
import { aptUpdateBeforeInstall, buildInstallArgv, runInstall, suggestManualCommand } from './ensure-tmux.js';
|
|
14
|
+
const PKG = 'opus-tools';
|
|
15
|
+
/** `opusenc --version` → first line, or undefined if the binary is absent. */
|
|
16
|
+
export function probeOpusenc() {
|
|
17
|
+
const r = spawnSync('opusenc', ['--version'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'], timeout: 3000 });
|
|
18
|
+
if (r.error || r.status !== 0)
|
|
19
|
+
return undefined;
|
|
20
|
+
return (r.stdout?.trim().split('\n')[0]) || PKG;
|
|
21
|
+
}
|
|
22
|
+
export async function ensureOpusTools(info) {
|
|
23
|
+
const present = probeOpusenc();
|
|
24
|
+
if (present)
|
|
25
|
+
return { installed: true, version: present, freshInstall: false };
|
|
26
|
+
const platform = info ?? detectPlatform();
|
|
27
|
+
console.log('⚠️ opus 编码器(opus-tools)未检测到,正在安装...');
|
|
28
|
+
const tried = [];
|
|
29
|
+
for (const pm of platform.packageManagers) {
|
|
30
|
+
if (pm === 'unknown')
|
|
31
|
+
continue;
|
|
32
|
+
const argv = buildInstallArgv(pm, PKG, platform);
|
|
33
|
+
if (!argv) {
|
|
34
|
+
tried.push(`${pm}(跳过:当前用户无 sudo 且无 TTY)`);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (pm === 'apt')
|
|
38
|
+
aptUpdateBeforeInstall(platform);
|
|
39
|
+
console.log(` 尝试 ${pm}: ${argv.join(' ')}`);
|
|
40
|
+
if (runInstall(argv)) {
|
|
41
|
+
const v = probeOpusenc();
|
|
42
|
+
if (v) {
|
|
43
|
+
console.log(`✅ opus-tools 安装完成(via ${pm})`);
|
|
44
|
+
return { installed: true, version: v, freshInstall: true };
|
|
45
|
+
}
|
|
46
|
+
tried.push(`${pm}(命令成功但 opusenc 仍不可用)`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
tried.push(`${pm}(命令返回非零)`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const preferred = platform.packageManagers.find(p => p !== 'unknown') ?? 'unknown';
|
|
53
|
+
const reasonLines = ['自动安装 opus-tools 失败', '已尝试:', ...tried.map(t => ` - ${t}`)];
|
|
54
|
+
if (platform.os === 'darwin' && !platform.packageManagers.includes('brew')) {
|
|
55
|
+
reasonLines.push('macOS 推荐先装 Homebrew,再 `brew install opus-tools`。');
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
installed: false,
|
|
59
|
+
freshInstall: false,
|
|
60
|
+
reason: reasonLines.join('\n'),
|
|
61
|
+
manualCommand: suggestManualCommand(preferred, PKG),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=ensure-opus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-opus.js","sourceRoot":"","sources":["../../src/setup/ensure-opus.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,5 +34,18 @@ export declare function probeTmuxFunctional(): {
|
|
|
34
34
|
ok: false;
|
|
35
35
|
reason: string;
|
|
36
36
|
};
|
|
37
|
+
/** Build the install argv for a given package manager. Pure: returns argv[]
|
|
38
|
+
* ready for spawnSync, no side effects. Returns undefined if escalation
|
|
39
|
+
* isn't possible. */
|
|
40
|
+
export declare function buildInstallArgv(pm: PackageManager, pkg: string, info: PlatformInfo): string[] | undefined;
|
|
41
|
+
/** apt-get specifically needs an updated package list on minimal images
|
|
42
|
+
* before the install will find tmux. This is NOT part of buildInstallArgv
|
|
43
|
+
* (which is pure) — it runs once just before the apt install attempt.
|
|
44
|
+
* Failure here is non-fatal; the actual install will fail loudly if it
|
|
45
|
+
* can't find the package. */
|
|
46
|
+
export declare function aptUpdateBeforeInstall(info: PlatformInfo): void;
|
|
47
|
+
/** Suggest the manual command we'd have run, for the failure message. */
|
|
48
|
+
export declare function suggestManualCommand(pm: PackageManager, pkg: string): string;
|
|
49
|
+
export declare function runInstall(argv: string[]): boolean;
|
|
37
50
|
export declare function ensureTmux(info?: PlatformInfo): Promise<TmuxResult>;
|
|
38
51
|
//# sourceMappingURL=ensure-tmux.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-tmux.d.ts","sourceRoot":"","sources":["../../src/setup/ensure-tmux.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9F,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA4DD,wBAAgB,OAAO,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAM/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAsBnG;
|
|
1
|
+
{"version":3,"file":"ensure-tmux.d.ts","sourceRoot":"","sources":["../../src/setup/ensure-tmux.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9F,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA4DD,wBAAgB,OAAO,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAM/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAsBnG;AAYD;;sBAEsB;AACtB,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,GAAG,SAAS,CAY1G;AAED;;;;8BAI8B;AAC9B,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAM/D;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAMlD;AAED,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAsEzE"}
|
|
@@ -140,7 +140,7 @@ function sudoPrefix(cmd, info) {
|
|
|
140
140
|
/** Build the install argv for a given package manager. Pure: returns argv[]
|
|
141
141
|
* ready for spawnSync, no side effects. Returns undefined if escalation
|
|
142
142
|
* isn't possible. */
|
|
143
|
-
function buildInstallArgv(pm, pkg, info) {
|
|
143
|
+
export function buildInstallArgv(pm, pkg, info) {
|
|
144
144
|
switch (pm) {
|
|
145
145
|
case 'brew': return ['brew', 'install', pkg];
|
|
146
146
|
case 'conda': return ['conda', 'install', '-y', '-c', 'conda-forge', pkg];
|
|
@@ -158,7 +158,7 @@ function buildInstallArgv(pm, pkg, info) {
|
|
|
158
158
|
* (which is pure) — it runs once just before the apt install attempt.
|
|
159
159
|
* Failure here is non-fatal; the actual install will fail loudly if it
|
|
160
160
|
* can't find the package. */
|
|
161
|
-
function aptUpdateBeforeInstall(info) {
|
|
161
|
+
export function aptUpdateBeforeInstall(info) {
|
|
162
162
|
const argv = sudoPrefix(['apt-get', 'update'], info);
|
|
163
163
|
if (!argv)
|
|
164
164
|
return;
|
|
@@ -168,7 +168,7 @@ function aptUpdateBeforeInstall(info) {
|
|
|
168
168
|
catch { /* best-effort */ }
|
|
169
169
|
}
|
|
170
170
|
/** Suggest the manual command we'd have run, for the failure message. */
|
|
171
|
-
function suggestManualCommand(pm, pkg) {
|
|
171
|
+
export function suggestManualCommand(pm, pkg) {
|
|
172
172
|
switch (pm) {
|
|
173
173
|
case 'brew': return `brew install ${pkg}`;
|
|
174
174
|
case 'conda': return `conda install -y -c conda-forge ${pkg}`;
|
|
@@ -181,7 +181,7 @@ function suggestManualCommand(pm, pkg) {
|
|
|
181
181
|
default: return `(请手动安装 ${pkg})`;
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
function runInstall(argv) {
|
|
184
|
+
export function runInstall(argv) {
|
|
185
185
|
const result = spawnSync(argv[0], argv.slice(1), {
|
|
186
186
|
stdio: 'inherit',
|
|
187
187
|
timeout: 10 * 60_000, // 10 min — apt-get on slow networks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-tmux.js","sourceRoot":"","sources":["../../src/setup/ensure-tmux.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ensure-tmux.js","sourceRoot":"","sources":["../../src/setup/ensure-tmux.ts"],"names":[],"mappings":"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"}
|
package/dist/setup/index.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { type TmuxResult } from './ensure-tmux.js';
|
|
2
2
|
import { type FontResult } from './ensure-fonts.js';
|
|
3
|
+
import { type HerdrResult } from './ensure-herdr.js';
|
|
4
|
+
import { type HerdrIntegrationResult } from './ensure-herdr-integrations.js';
|
|
3
5
|
export interface DependenciesReport {
|
|
4
6
|
tmux: TmuxResult;
|
|
5
7
|
fonts: FontResult;
|
|
8
|
+
herdr?: HerdrResult;
|
|
9
|
+
herdrIntegrations?: HerdrIntegrationResult;
|
|
6
10
|
}
|
|
7
11
|
export { botmuxFontDir } from './ensure-fonts.js';
|
|
8
12
|
export declare function ensureDependencies(): Promise<DependenciesReport>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGtG,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA8BlD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAoDtE"}
|
package/dist/setup/index.js
CHANGED
|
@@ -5,11 +5,49 @@
|
|
|
5
5
|
*
|
|
6
6
|
* - tmux is required: a failed install throws so cli.ts can exit non-zero.
|
|
7
7
|
* - fonts are nice-to-have: failures only print a warning.
|
|
8
|
+
* - herdr is on-demand: only runs when at least one bot in bots.json has
|
|
9
|
+
* `backendType: 'herdr'`. Avoids dragging an extra binary onto every host.
|
|
8
10
|
*/
|
|
11
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { join } from 'node:path';
|
|
9
14
|
import { detectPlatform } from './detect-platform.js';
|
|
10
15
|
import { ensureTmux } from './ensure-tmux.js';
|
|
11
16
|
import { ensureFonts } from './ensure-fonts.js';
|
|
17
|
+
import { ensureHerdr } from './ensure-herdr.js';
|
|
18
|
+
import { ensureHerdrIntegrations } from './ensure-herdr-integrations.js';
|
|
12
19
|
export { botmuxFontDir } from './ensure-fonts.js';
|
|
20
|
+
const BOTS_JSON_FILE = join(homedir(), '.botmux', 'bots.json');
|
|
21
|
+
/**
|
|
22
|
+
* Read bots.json directly (no parser, no validation) to find which CLIs
|
|
23
|
+
* have herdr backend selected. We deliberately bypass parseBotConfigsJson
|
|
24
|
+
* to avoid pulling the full bot-config-editor module (and its CLI deps)
|
|
25
|
+
* into the bootstrap path. Best-effort: any read/parse failure → empty list,
|
|
26
|
+
* herdr install will simply skip.
|
|
27
|
+
*/
|
|
28
|
+
function herdrCliIds() {
|
|
29
|
+
if (!existsSync(BOTS_JSON_FILE))
|
|
30
|
+
return [];
|
|
31
|
+
let parsed;
|
|
32
|
+
try {
|
|
33
|
+
parsed = JSON.parse(readFileSync(BOTS_JSON_FILE, 'utf-8'));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
if (!Array.isArray(parsed))
|
|
39
|
+
return [];
|
|
40
|
+
const out = new Set();
|
|
41
|
+
for (const bot of parsed) {
|
|
42
|
+
if (!bot || typeof bot !== 'object')
|
|
43
|
+
continue;
|
|
44
|
+
if (bot.backendType !== 'herdr')
|
|
45
|
+
continue;
|
|
46
|
+
const cli = (bot.cliId ?? 'claude-code');
|
|
47
|
+
out.add(cli);
|
|
48
|
+
}
|
|
49
|
+
return [...out];
|
|
50
|
+
}
|
|
13
51
|
export async function ensureDependencies() {
|
|
14
52
|
const platform = detectPlatform();
|
|
15
53
|
// tmux: nice-to-have (enables /adopt + multi-pane Web terminal). Daemon
|
|
@@ -41,6 +79,45 @@ export async function ensureDependencies() {
|
|
|
41
79
|
else {
|
|
42
80
|
console.warn(`⚠️ 字体部分缺失: ${fonts.failed.join(' / ')} —— 飞书截图中相关字符可能渲染为方块`);
|
|
43
81
|
}
|
|
44
|
-
|
|
82
|
+
// herdr: on-demand only. We won't pull it onto hosts that don't use it.
|
|
83
|
+
const herdrCandidates = herdrCliIds();
|
|
84
|
+
let herdr;
|
|
85
|
+
let herdrIntegrations;
|
|
86
|
+
if (herdrCandidates.length > 0) {
|
|
87
|
+
herdr = await ensureHerdr();
|
|
88
|
+
if (herdr.installed) {
|
|
89
|
+
if (!herdr.freshInstall)
|
|
90
|
+
console.log(`✓ herdr ${herdr.version} (existing)`);
|
|
91
|
+
// Only attempt integration install when herdr itself is on PATH —
|
|
92
|
+
// otherwise `herdr integration install` would just spam ENOENT.
|
|
93
|
+
herdrIntegrations = await ensureHerdrIntegrations(herdrCandidates);
|
|
94
|
+
reportHerdrIntegrations(herdrIntegrations);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.warn('');
|
|
98
|
+
console.warn('⚠️ herdr 安装失败,使用 herdr backend 的 bot 将无法启动');
|
|
99
|
+
console.warn(` 原因:${herdr.reason ?? '未知'}`);
|
|
100
|
+
if (herdr.manualCommand)
|
|
101
|
+
console.warn(` 手动尝试:${herdr.manualCommand}`);
|
|
102
|
+
console.warn(' 临时方案:把对应 bot 的 backendType 改回 "tmux" 或 "pty"');
|
|
103
|
+
console.warn('');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { tmux, fonts, herdr, herdrIntegrations };
|
|
107
|
+
}
|
|
108
|
+
function reportHerdrIntegrations(r) {
|
|
109
|
+
if (r.attempted.length === 0 && r.unsupportedCliIds.length === 0)
|
|
110
|
+
return;
|
|
111
|
+
if (r.installed.length > 0)
|
|
112
|
+
console.log(`✓ herdr integrations 已安装: ${r.installed.join(' / ')}`);
|
|
113
|
+
if (r.alreadyInstalled.length > 0)
|
|
114
|
+
console.log(`✓ herdr integrations (existing): ${r.alreadyInstalled.join(' / ')}`);
|
|
115
|
+
for (const f of r.failed) {
|
|
116
|
+
console.warn(`⚠️ herdr integration 安装失败: ${f.name} — ${f.reason}`);
|
|
117
|
+
console.warn(` 手动尝试:herdr integration install ${f.name}`);
|
|
118
|
+
}
|
|
119
|
+
if (r.unsupportedCliIds.length > 0) {
|
|
120
|
+
console.warn(`⚠️ 以下 CLI 暂无官方 herdr integration(herdr 仍可用,但仅靠屏幕启发式检测状态): ${r.unsupportedCliIds.join(', ')}`);
|
|
121
|
+
}
|
|
45
122
|
}
|
|
46
123
|
//# sourceMappingURL=index.js.map
|
package/dist/setup/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BackendType } from './adapters/backend/types.js';
|
|
1
2
|
import type { CliUsageLimitState } from './utils/cli-usage-limit.js';
|
|
2
3
|
/** Runtime status the worker derives from screen content. */
|
|
3
4
|
export type ScreenStatus = 'working' | 'idle' | 'analyzing' | 'limited';
|
|
@@ -83,11 +84,18 @@ export interface Session {
|
|
|
83
84
|
/** Persisted adopt metadata — allows adopt sessions to survive daemon restarts.
|
|
84
85
|
* Either tmuxTarget (tmux backend) OR zellijSession+zellijPaneId (zellij). */
|
|
85
86
|
adoptedFrom?: {
|
|
87
|
+
/** Source backend of the external session. Absent means legacy tmux metadata. */
|
|
88
|
+
source?: 'tmux' | 'herdr' | 'zellij';
|
|
86
89
|
tmuxTarget?: string;
|
|
87
90
|
/** zellij adopt target: session name + pane id (e.g. "terminal_1"). */
|
|
88
91
|
zellijSession?: string;
|
|
89
92
|
zellijPaneId?: string;
|
|
90
|
-
|
|
93
|
+
herdrSessionName?: string;
|
|
94
|
+
herdrTarget?: string;
|
|
95
|
+
herdrPaneId?: string;
|
|
96
|
+
herdrAgentName?: string;
|
|
97
|
+
herdrTerminalId?: string;
|
|
98
|
+
originalCliPid?: number;
|
|
91
99
|
sessionId?: string;
|
|
92
100
|
cliId?: string;
|
|
93
101
|
cwd: string;
|
|
@@ -202,7 +210,7 @@ export type DaemonToWorker = {
|
|
|
202
210
|
cliPathOverride?: string;
|
|
203
211
|
model?: string;
|
|
204
212
|
disableCliBypass?: boolean;
|
|
205
|
-
backendType:
|
|
213
|
+
backendType: BackendType;
|
|
206
214
|
prompt: string;
|
|
207
215
|
resume?: boolean;
|
|
208
216
|
cliSessionId?: string;
|
|
@@ -215,9 +223,13 @@ export type DaemonToWorker = {
|
|
|
215
223
|
botOpenId?: string;
|
|
216
224
|
locale?: 'zh' | 'en';
|
|
217
225
|
adoptMode?: boolean;
|
|
226
|
+
adoptSource?: 'tmux' | 'herdr' | 'zellij';
|
|
218
227
|
adoptTmuxTarget?: string;
|
|
219
228
|
adoptZellijSession?: string;
|
|
220
229
|
adoptZellijPaneId?: string;
|
|
230
|
+
adoptHerdrSessionName?: string;
|
|
231
|
+
adoptHerdrTarget?: string;
|
|
232
|
+
adoptHerdrPaneId?: string;
|
|
221
233
|
adoptPaneCols?: number;
|
|
222
234
|
adoptPaneRows?: number;
|
|
223
235
|
bridgeJsonlPath?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AACxE,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B;;2EAEuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB;;;qEAGiE;IACjE,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;kEAK8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;8EAM0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;oEAGgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;mBAGe;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;kDAC8C;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;mFAC+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;2DACuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wDAAwD;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,OAAO,yBAAyB,EAAE,KAAK,CAAC;IAChD;mFAC+E;IAC/E,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,uEAAuE;QACvE,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ export interface TransientSnapshot {
|
|
|
4
4
|
/** Raw ANSI captured from tmux capture-pane. Useful for hashing/dedup. */
|
|
5
5
|
ansi: string;
|
|
6
6
|
}
|
|
7
|
-
/** Attempt to capture a fresh ANSI snapshot from
|
|
8
|
-
* null if the backend isn't
|
|
9
|
-
*
|
|
7
|
+
/** Attempt to capture a fresh ANSI snapshot from an observe backend. Returns
|
|
8
|
+
* null if the backend isn't observe-capable, the pane has gone away, or
|
|
9
|
+
* the external backend refuses to answer. Callers should fall back to the legacy renderer
|
|
10
10
|
* path on null. */
|
|
11
11
|
export declare function tryCapturePipeSnapshot(backend: unknown, fallbackCols: number, fallbackRows: number): TransientSnapshot | null;
|
|
12
12
|
/** Render a tmux pipe-pane snapshot to a PNG buffer. Returns null when the
|
|
@@ -26,9 +26,9 @@ import { isObserveBackend } from '../adapters/backend/types.js';
|
|
|
26
26
|
import { readViewportText } from './terminal-renderer.js';
|
|
27
27
|
import { captureToPng } from './screenshot-renderer.js';
|
|
28
28
|
import { clamp, MIN_RENDER_COLS, MAX_RENDER_COLS, MIN_RENDER_ROWS, MAX_RENDER_ROWS } from './render-dimensions.js';
|
|
29
|
-
/** Attempt to capture a fresh ANSI snapshot from
|
|
30
|
-
* null if the backend isn't
|
|
31
|
-
*
|
|
29
|
+
/** Attempt to capture a fresh ANSI snapshot from an observe backend. Returns
|
|
30
|
+
* null if the backend isn't observe-capable, the pane has gone away, or
|
|
31
|
+
* the external backend refuses to answer. Callers should fall back to the legacy renderer
|
|
32
32
|
* path on null. */
|
|
33
33
|
export function tryCapturePipeSnapshot(backend, fallbackCols, fallbackRows) {
|
|
34
34
|
if (!isObserveBackend(backend))
|