botmux 3.3.0 → 3.4.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/sandbox.d.ts +47 -0
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +137 -0
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/read-isolation.d.ts +72 -3
- package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
- package/dist/adapters/cli/read-isolation.js +143 -6
- package/dist/adapters/cli/read-isolation.js.map +1 -1
- package/dist/adapters/cli/registry.d.ts.map +1 -1
- package/dist/adapters/cli/registry.js +8 -2
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/cli/pm2-command.d.ts.map +1 -1
- package/dist/cli/pm2-command.js +6 -0
- package/dist/cli/pm2-command.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +21 -0
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/device-isolation-activation.d.ts +56 -0
- package/dist/core/device-isolation-activation.d.ts.map +1 -0
- package/dist/core/device-isolation-activation.js +110 -0
- package/dist/core/device-isolation-activation.js.map +1 -0
- package/dist/core/device-isolation-daemon.d.ts +84 -0
- package/dist/core/device-isolation-daemon.d.ts.map +1 -0
- package/dist/core/device-isolation-daemon.js +591 -0
- package/dist/core/device-isolation-daemon.js.map +1 -0
- package/dist/core/types.d.ts +9 -0
- 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 +35 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +5 -0
- package/dist/daemon.js.map +1 -1
- package/dist/desktop/main/auto-start.d.ts +2 -0
- package/dist/desktop/main/auto-start.d.ts.map +1 -1
- package/dist/desktop/main/auto-start.js +10 -6
- package/dist/desktop/main/auto-start.js.map +1 -1
- package/dist/desktop/main/bundled-runtime.d.ts +12 -0
- package/dist/desktop/main/bundled-runtime.d.ts.map +1 -0
- package/dist/desktop/main/bundled-runtime.js +30 -0
- package/dist/desktop/main/bundled-runtime.js.map +1 -0
- package/dist/desktop/main/device-status.d.ts +15 -0
- package/dist/desktop/main/device-status.d.ts.map +1 -0
- package/dist/desktop/main/device-status.js +94 -0
- package/dist/desktop/main/device-status.js.map +1 -0
- package/dist/desktop/main/external-runtime.d.ts +9 -0
- package/dist/desktop/main/external-runtime.d.ts.map +1 -1
- package/dist/desktop/main/external-runtime.js +88 -18
- package/dist/desktop/main/external-runtime.js.map +1 -1
- package/dist/desktop/main/ipc.d.ts.map +1 -1
- package/dist/desktop/main/ipc.js +1 -0
- package/dist/desktop/main/ipc.js.map +1 -1
- package/dist/desktop/main/node-command.d.ts +21 -0
- package/dist/desktop/main/node-command.d.ts.map +1 -1
- package/dist/desktop/main/node-command.js +41 -0
- package/dist/desktop/main/node-command.js.map +1 -1
- package/dist/desktop/main/pm2-apps.d.ts +4 -2
- package/dist/desktop/main/pm2-apps.d.ts.map +1 -1
- package/dist/desktop/main/pm2-apps.js +11 -3
- package/dist/desktop/main/pm2-apps.js.map +1 -1
- package/dist/desktop/main/runtime-service.d.ts +21 -5
- package/dist/desktop/main/runtime-service.d.ts.map +1 -1
- package/dist/desktop/main/runtime-service.js +94 -10
- package/dist/desktop/main/runtime-service.js.map +1 -1
- package/dist/desktop/main/runtime-source.d.ts +2 -0
- package/dist/desktop/main/runtime-source.d.ts.map +1 -1
- package/dist/desktop/main/runtime-source.js +12 -6
- package/dist/desktop/main/runtime-source.js.map +1 -1
- package/dist/desktop/main/tray.d.ts +1 -0
- package/dist/desktop/main/tray.d.ts.map +1 -1
- package/dist/desktop/main/tray.js +3 -3
- package/dist/desktop/main/tray.js.map +1 -1
- package/dist/desktop/main.js +28 -8
- package/dist/desktop/main.js.map +1 -1
- package/dist/desktop/preload.js +3 -0
- package/dist/desktop/preload.js.map +1 -1
- package/dist/desktop/renderer/app.d.ts +2 -1
- package/dist/desktop/renderer/app.d.ts.map +1 -1
- package/dist/desktop/renderer/app.js +6 -1
- package/dist/desktop/renderer/app.js.map +1 -1
- package/dist/desktop/renderer/runtime-state.d.ts.map +1 -1
- package/dist/desktop/renderer/runtime-state.js +2 -0
- package/dist/desktop/renderer/runtime-state.js.map +1 -1
- package/dist/desktop/shared/shell-path-probes.d.ts +24 -0
- package/dist/desktop/shared/shell-path-probes.d.ts.map +1 -0
- package/dist/desktop/shared/shell-path-probes.js +38 -0
- package/dist/desktop/shared/shell-path-probes.js.map +1 -0
- package/dist/desktop/shared/types.d.ts +21 -1
- package/dist/desktop/shared/types.d.ts.map +1 -1
- package/dist/desktop/smoke.d.ts +1 -0
- package/dist/desktop/smoke.d.ts.map +1 -1
- package/dist/desktop/smoke.js +20 -5
- package/dist/desktop/smoke.js.map +1 -1
- package/dist/platform/bind.d.ts +4 -1
- package/dist/platform/bind.d.ts.map +1 -1
- package/dist/platform/bind.js +10 -1
- package/dist/platform/bind.js.map +1 -1
- package/dist/platform/binding.d.ts.map +1 -1
- package/dist/platform/binding.js +15 -9
- package/dist/platform/binding.js.map +1 -1
- package/dist/platform/device-command.d.ts +35 -0
- package/dist/platform/device-command.d.ts.map +1 -0
- package/dist/platform/device-command.js +187 -0
- package/dist/platform/device-command.js.map +1 -0
- package/dist/platform/device-enroll.d.ts +156 -0
- package/dist/platform/device-enroll.d.ts.map +1 -0
- package/dist/platform/device-enroll.js +781 -0
- package/dist/platform/device-enroll.js.map +1 -0
- package/dist/platform/device-isolation-activation-client.d.ts +28 -0
- package/dist/platform/device-isolation-activation-client.d.ts.map +1 -0
- package/dist/platform/device-isolation-activation-client.js +279 -0
- package/dist/platform/device-isolation-activation-client.js.map +1 -0
- package/dist/platform/device-isolation.d.ts +35 -0
- package/dist/platform/device-isolation.d.ts.map +1 -0
- package/dist/platform/device-isolation.js +90 -0
- package/dist/platform/device-isolation.js.map +1 -0
- package/dist/platform/device-paths.d.ts +9 -0
- package/dist/platform/device-paths.d.ts.map +1 -0
- package/dist/platform/device-paths.js +14 -0
- package/dist/platform/device-paths.js.map +1 -0
- package/dist/platform/device.d.ts +77 -0
- package/dist/platform/device.d.ts.map +1 -0
- package/dist/platform/device.js +212 -0
- package/dist/platform/device.js.map +1 -0
- package/dist/platform/host-command-context.d.ts +15 -0
- package/dist/platform/host-command-context.d.ts.map +1 -0
- package/dist/platform/host-command-context.js +26 -0
- package/dist/platform/host-command-context.js.map +1 -0
- package/dist/platform/secure-host-file.d.ts +12 -0
- package/dist/platform/secure-host-file.d.ts.map +1 -0
- package/dist/platform/secure-host-file.js +182 -0
- package/dist/platform/secure-host-file.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/atomic-write.d.ts +13 -0
- package/dist/utils/atomic-write.d.ts.map +1 -1
- package/dist/utils/atomic-write.js +89 -9
- package/dist/utils/atomic-write.js.map +1 -1
- package/dist/worker.js +289 -19
- package/dist/worker.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +4 -4
- package/dist/workflows/events/schema.d.ts +16 -16
- package/package.json +6 -3
|
@@ -4,11 +4,13 @@ export type AutoStartLaunchResult = 'started' | 'skipped' | 'failed';
|
|
|
4
4
|
export interface AutoStartRuntime {
|
|
5
5
|
getState(): Promise<DesktopRuntimeState>;
|
|
6
6
|
start(): Promise<RunResult>;
|
|
7
|
+
takeover(): Promise<RunResult>;
|
|
7
8
|
}
|
|
8
9
|
export interface AutoStartMonitor {
|
|
9
10
|
refresh(): Promise<void>;
|
|
10
11
|
}
|
|
11
12
|
export declare function shouldAutoStartCliRuntime(state: DesktopRuntimeState): boolean;
|
|
13
|
+
export declare function shouldTakeOverExternalRuntime(state: DesktopRuntimeState): boolean;
|
|
12
14
|
export declare function autoStartCliRuntimeOnLaunch(args: {
|
|
13
15
|
runtime: AutoStartRuntime;
|
|
14
16
|
monitor?: AutoStartMonitor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-start.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/auto-start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-start.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/auto-start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAE7E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAKjF;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiBjC"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
export function shouldAutoStartCliRuntime(state) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return state.status === '
|
|
2
|
+
return state.status === 'stopped' && state.runtimeManaged && state.runtimeSource !== 'none';
|
|
3
|
+
}
|
|
4
|
+
export function shouldTakeOverExternalRuntime(state) {
|
|
5
|
+
return state.status === 'degraded'
|
|
6
|
+
&& !state.runtimeManaged
|
|
7
|
+
&& state.runtimeSource === 'global-cli'
|
|
8
|
+
&& Boolean(state.runtimePath);
|
|
6
9
|
}
|
|
7
10
|
export async function autoStartCliRuntimeOnLaunch(args) {
|
|
8
11
|
try {
|
|
9
12
|
const state = await args.runtime.getState();
|
|
10
|
-
|
|
13
|
+
const takeover = shouldTakeOverExternalRuntime(state);
|
|
14
|
+
if (!shouldAutoStartCliRuntime(state) && !takeover)
|
|
11
15
|
return 'skipped';
|
|
12
|
-
const result = await args.runtime.start();
|
|
16
|
+
const result = takeover ? await args.runtime.takeover() : await args.runtime.start();
|
|
13
17
|
await refreshAfterLaunchAction(args.monitor, args.warn);
|
|
14
18
|
if (result.code !== 0) {
|
|
15
19
|
args.warn?.(`CLI auto-start failed: ${formatRunResult(result)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-start.js","sourceRoot":"","sources":["../../../src/desktop/main/auto-start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auto-start.js","sourceRoot":"","sources":["../../../src/desktop/main/auto-start.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CAAC,KAA0B;IAClE,OAAO,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAA0B;IACtE,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU;WAC7B,CAAC,KAAK,CAAC,cAAc;WACrB,KAAK,CAAC,aAAa,KAAK,YAAY;WACpC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAIjD;IACC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAErE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrF,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC,0BAA0B,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,EAAE,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChG,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAqC,EACrC,IAA6C;IAE7C,IAAI,CAAC;QACH,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,EAAE,CAAC,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAiB;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,OAAO,IAAI,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BundledRuntimeCandidate } from './runtime-service.js';
|
|
2
|
+
export interface ResolveBundledRuntimeInput {
|
|
3
|
+
resourcesPath: string;
|
|
4
|
+
repoRoot: string;
|
|
5
|
+
isPackaged: boolean;
|
|
6
|
+
arch: NodeJS.Architecture;
|
|
7
|
+
appVersion: string;
|
|
8
|
+
env: NodeJS.ProcessEnv;
|
|
9
|
+
existsSync?: (path: string) => boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveBundledRuntimeCandidate(input: ResolveBundledRuntimeInput): BundledRuntimeCandidate;
|
|
12
|
+
//# sourceMappingURL=bundled-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-runtime.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/bundled-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,0BAA0B,GAAG,uBAAuB,CAoBzG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
export function resolveBundledRuntimeCandidate(input) {
|
|
4
|
+
const exists = input.existsSync ?? existsSync;
|
|
5
|
+
const root = input.isPackaged ? join(input.resourcesPath, 'runtime') : input.repoRoot;
|
|
6
|
+
const nodePath = input.isPackaged
|
|
7
|
+
? join(input.resourcesPath, 'node', `darwin-${input.arch}`, 'bin', 'node')
|
|
8
|
+
: resolveDevelopmentNode(input.env, exists);
|
|
9
|
+
const cliPath = join(root, 'dist', 'cli.js');
|
|
10
|
+
if (input.isPackaged && (!exists(nodePath) || !exists(cliPath))) {
|
|
11
|
+
throw new Error(`Bundled botmux runtime is incomplete: node=${nodePath}, cli=${cliPath}`);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
kind: 'bundled',
|
|
15
|
+
root,
|
|
16
|
+
cliPath,
|
|
17
|
+
nodePath,
|
|
18
|
+
version: input.appVersion,
|
|
19
|
+
runtimeSource: 'bundled',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function resolveDevelopmentNode(env, exists) {
|
|
23
|
+
const nodePath = [env.BOTMUX_DESKTOP_NODE_PATH, env.npm_node_execpath]
|
|
24
|
+
.find(candidate => candidate && exists(candidate));
|
|
25
|
+
if (!nodePath) {
|
|
26
|
+
throw new Error('Desktop development requires BOTMUX_DESKTOP_NODE_PATH or npm_node_execpath');
|
|
27
|
+
}
|
|
28
|
+
return nodePath;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=bundled-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-runtime.js","sourceRoot":"","sources":["../../../src/desktop/main/bundled-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,MAAM,UAAU,8BAA8B,CAAC,KAAiC;IAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU;QAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1E,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE7C,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,SAAS,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,UAAU;QACzB,aAAa,EAAE,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAsB,EAAE,MAAiC;IACvF,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,iBAAiB,CAAC;SACnE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DesktopDeviceStatusResult } from '../shared/types.js';
|
|
2
|
+
interface DeviceStatusCommandResult {
|
|
3
|
+
code: number;
|
|
4
|
+
stdout: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Convert host-CLI output into the only device data Electron may expose.
|
|
8
|
+
*
|
|
9
|
+
* This is intentionally an exact allow-list, not a cast: if a buggy CLI adds
|
|
10
|
+
* accessToken/refreshToken (or any future unreviewed field), main rejects the
|
|
11
|
+
* whole response before it can cross IPC into the renderer/webview boundary.
|
|
12
|
+
*/
|
|
13
|
+
export declare function sanitizeDeviceStatusCommandResult(result: DeviceStatusCommandResult): DesktopDeviceStatusResult;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=device-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-status.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/device-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAO5B,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,yBAAyB,GAChC,yBAAyB,CAgB3B"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// `botmux device status --json` is a tiny local status protocol. Cap its input
|
|
2
|
+
// before JSON.parse so a broken/hostile replacement CLI cannot make Electron
|
|
3
|
+
// retain arbitrary stdout in the renderer-facing result.
|
|
4
|
+
const MAX_DEVICE_STATUS_BYTES = 4 * 1024;
|
|
5
|
+
/**
|
|
6
|
+
* Convert host-CLI output into the only device data Electron may expose.
|
|
7
|
+
*
|
|
8
|
+
* This is intentionally an exact allow-list, not a cast: if a buggy CLI adds
|
|
9
|
+
* accessToken/refreshToken (or any future unreviewed field), main rejects the
|
|
10
|
+
* whole response before it can cross IPC into the renderer/webview boundary.
|
|
11
|
+
*/
|
|
12
|
+
export function sanitizeDeviceStatusCommandResult(result) {
|
|
13
|
+
if (result.code !== 0)
|
|
14
|
+
return { ok: false, reason: 'command_failed' };
|
|
15
|
+
if (Buffer.byteLength(result.stdout, 'utf8') > MAX_DEVICE_STATUS_BYTES) {
|
|
16
|
+
return { ok: false, reason: 'invalid_response' };
|
|
17
|
+
}
|
|
18
|
+
let parsed;
|
|
19
|
+
try {
|
|
20
|
+
parsed = JSON.parse(result.stdout.trim());
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return { ok: false, reason: 'invalid_response' };
|
|
24
|
+
}
|
|
25
|
+
const status = parsePublicStatus(parsed);
|
|
26
|
+
return status
|
|
27
|
+
? { ok: true, status }
|
|
28
|
+
: { ok: false, reason: 'invalid_response' };
|
|
29
|
+
}
|
|
30
|
+
function parsePublicStatus(value) {
|
|
31
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
32
|
+
return null;
|
|
33
|
+
const record = value;
|
|
34
|
+
if (record.schemaVersion !== 1 || typeof record.enrolled !== 'boolean')
|
|
35
|
+
return null;
|
|
36
|
+
if (!record.enrolled) {
|
|
37
|
+
if (!hasExactKeys(record, ['schemaVersion', 'enrolled']))
|
|
38
|
+
return null;
|
|
39
|
+
return { schemaVersion: 1, enrolled: false };
|
|
40
|
+
}
|
|
41
|
+
if (!hasExactKeys(record, ['schemaVersion', 'enrolled', 'issuer', 'deviceExp', 'savedAt'])
|
|
42
|
+
||
|
|
43
|
+
typeof record.issuer !== 'string'
|
|
44
|
+
|| !isSafeIssuer(record.issuer)
|
|
45
|
+
|| typeof record.deviceExp !== 'number'
|
|
46
|
+
|| !Number.isSafeInteger(record.deviceExp)
|
|
47
|
+
|| record.deviceExp <= 0
|
|
48
|
+
|| typeof record.savedAt !== 'string'
|
|
49
|
+
|| !isCanonicalIsoDate(record.savedAt))
|
|
50
|
+
return null;
|
|
51
|
+
return {
|
|
52
|
+
schemaVersion: 1,
|
|
53
|
+
enrolled: true,
|
|
54
|
+
issuer: record.issuer,
|
|
55
|
+
deviceExp: record.deviceExp,
|
|
56
|
+
savedAt: record.savedAt,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function hasExactKeys(record, expected) {
|
|
60
|
+
const actual = Object.keys(record).sort();
|
|
61
|
+
const wanted = [...expected].sort();
|
|
62
|
+
return actual.length === wanted.length && actual.every((key, index) => key === wanted[index]);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Keep this boolean predicate in lockstep with platform `normalizeDeviceIssuer`
|
|
66
|
+
* (throwing validator). Desktop only sanitizes a public status DTO and must not
|
|
67
|
+
* import the host credential module into the Electron main process.
|
|
68
|
+
*/
|
|
69
|
+
function isSafeIssuer(raw) {
|
|
70
|
+
if (raw.length === 0 || raw.length > 2048)
|
|
71
|
+
return false;
|
|
72
|
+
try {
|
|
73
|
+
const url = new URL(raw);
|
|
74
|
+
if (url.origin !== raw || url.username || url.password || url.pathname !== '/' || url.search || url.hash) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (url.protocol === 'https:')
|
|
78
|
+
return true;
|
|
79
|
+
if (url.protocol !== 'http:')
|
|
80
|
+
return false;
|
|
81
|
+
const host = url.hostname.toLowerCase().replace(/^\[|\]$/g, '');
|
|
82
|
+
return host === 'localhost' || host === '127.0.0.1' || host === '::1';
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function isCanonicalIsoDate(raw) {
|
|
89
|
+
if (raw.length > 64)
|
|
90
|
+
return false;
|
|
91
|
+
const millis = Date.parse(raw);
|
|
92
|
+
return Number.isFinite(millis) && new Date(millis).toISOString() === raw;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=device-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-status.js","sourceRoot":"","sources":["../../../src/desktop/main/device-status.ts"],"names":[],"mappings":"AAKA,+EAA+E;AAC/E,6EAA6E;AAC7E,yDAAyD;AACzD,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC;AAOzC;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAiC;IAEjC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACtE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB,EAAE,CAAC;QACvE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,MAAM;QACX,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACtB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACtE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,IACE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;;YAEtF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;WAC9B,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;WAC5B,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;WACpC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC;WACvC,MAAM,CAAC,SAAS,IAAI,CAAC;WACrB,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;WAClC,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,OAAO,IAAI,CAAC;IAEd,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B,EAAE,QAAkB;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACzG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;AAC3E,CAAC"}
|
|
@@ -17,6 +17,7 @@ interface InstallEntry {
|
|
|
17
17
|
export interface ExternalRuntimeDiscoveryDeps {
|
|
18
18
|
binPaths?: string[];
|
|
19
19
|
platform?: NodeJS.Platform;
|
|
20
|
+
env?: NodeJS.ProcessEnv;
|
|
20
21
|
execFileSync?: ExecFile;
|
|
21
22
|
existsSync?: (path: string) => boolean;
|
|
22
23
|
readFileSync?: ReadTextFile;
|
|
@@ -25,5 +26,13 @@ export interface ExternalRuntimeDiscoveryDeps {
|
|
|
25
26
|
}
|
|
26
27
|
export declare function discoverExternalRuntimeCandidate(paths: DesktopPaths, deps?: ExternalRuntimeDiscoveryDeps): ExternalRuntimeCandidate | null;
|
|
27
28
|
export declare function selectExternalRuntimeCandidate(entries: InstallEntry[], _paths: DesktopPaths, deps?: ExternalRuntimeDiscoveryDeps): ExternalRuntimeCandidate | null;
|
|
29
|
+
/**
|
|
30
|
+
* Merged login+interactive shell PATH for GUI-launched processes (darwin only;
|
|
31
|
+
* undefined elsewhere or when probing fails). The bundled-runtime daemon spawn
|
|
32
|
+
* uses this so per-bot CLIs installed via nvm/fnm/homebrew stay findable —
|
|
33
|
+
* PtyBackend spawns CLIs without any rc-sourcing shell wrapper, so whatever
|
|
34
|
+
* PATH the daemon starts with is what `#!/usr/bin/env node` resolves against.
|
|
35
|
+
*/
|
|
36
|
+
export declare function probeShellPathEnv(): string | undefined;
|
|
28
37
|
export {};
|
|
29
38
|
//# sourceMappingURL=external-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-runtime.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/external-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"external-runtime.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/external-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAKrE,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,MAAM,CAAC;AACvE,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,KAAK,QAAQ,GAAG,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,KACxF,MAAM,CAAC;AAEZ,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,YAAY,EACnB,IAAI,GAAE,4BAAiC,GACtC,wBAAwB,GAAG,IAAI,CAKjC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,4BAAiC,GACtC,wBAAwB,GAAG,IAAI,CAyBjC;AAoID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAItD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execFileSync as defaultExecFileSync } from 'node:child_process';
|
|
2
2
|
import { existsSync as defaultExistsSync, readFileSync as defaultReadFileSync, realpathSync as defaultRealpathSync, statSync as defaultStatSync } from 'node:fs';
|
|
3
|
-
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
import { delimiter, dirname, join, resolve } from 'node:path';
|
|
4
|
+
import { shellPathProbes } from '../shared/shell-path-probes.js';
|
|
4
5
|
import { resolveEffectiveBotmuxVersion } from '../../utils/version-info.js';
|
|
5
6
|
const MAX_SHIM_BYTES = 4096;
|
|
6
7
|
const LOGIN_SHELL_PATH_MARKER = '__BOTMUX_PATH__';
|
|
@@ -106,15 +107,23 @@ function resolveBotmuxBin(binPath, deps) {
|
|
|
106
107
|
function listBotmuxBins(paths, deps) {
|
|
107
108
|
const execFile = deps.execFileSync ?? defaultExecFileSync;
|
|
108
109
|
const platform = deps.platform ?? process.platform;
|
|
110
|
+
// macOS GUI apps miss the user's shell PATH, so ask the user's shell (zsh or
|
|
111
|
+
// bash, profile and rc flavors) — see shellPathProbes for the ladder.
|
|
112
|
+
const shellProbe = platform === 'darwin'
|
|
113
|
+
? cachedShellPathWhich(execFile, deps)
|
|
114
|
+
: { bins: [], pathEnv: undefined };
|
|
115
|
+
// The merged shell PATH is attached to every candidate (not only shell-found
|
|
116
|
+
// ones): whichever bin wins, the daemon it starts needs that PATH to find
|
|
117
|
+
// `node` and the per-bot CLIs when they live in nvm/fnm-managed directories.
|
|
118
|
+
const pathEnv = shellProbe.pathEnv;
|
|
109
119
|
const bins = [
|
|
110
|
-
...runWhich(execFile, platform).map(binPath => ({ binPath })),
|
|
111
|
-
|
|
112
|
-
...(platform === 'darwin' ? runLoginShellWhich(execFile) : []),
|
|
120
|
+
...runWhich(execFile, platform).map(binPath => ({ binPath, pathEnv })),
|
|
121
|
+
...shellProbe.bins.map(binPath => ({ binPath, pathEnv })),
|
|
113
122
|
// User-owned wrappers are useful fallbacks, but should not override the CLI
|
|
114
123
|
// that the user's shell actually resolves for `botmux`.
|
|
115
|
-
{ binPath: join(paths.botmuxHome, 'bin', 'botmux') },
|
|
116
|
-
{ binPath: '/opt/homebrew/bin/botmux' },
|
|
117
|
-
{ binPath: '/usr/local/bin/botmux' },
|
|
124
|
+
{ binPath: join(paths.botmuxHome, 'bin', 'botmux'), pathEnv },
|
|
125
|
+
{ binPath: '/opt/homebrew/bin/botmux', pathEnv },
|
|
126
|
+
{ binPath: '/usr/local/bin/botmux', pathEnv },
|
|
118
127
|
];
|
|
119
128
|
const byBin = new Map();
|
|
120
129
|
for (const bin of bins) {
|
|
@@ -145,18 +154,77 @@ function runWhich(execFile, platform) {
|
|
|
145
154
|
return [];
|
|
146
155
|
}
|
|
147
156
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
157
|
+
// Runtime state is polled every ~5s (createRuntimeStateMonitor) and each poll
|
|
158
|
+
// re-runs discovery. Spawning up to 4 rc-sourcing shells per poll is far too
|
|
159
|
+
// heavy, so the probe result is cached: shell PATH essentially never changes
|
|
160
|
+
// mid-run. A miss (no bins) expires within one poll period so a user who
|
|
161
|
+
// installs botmux while the app shows "install CLI" (or hits an explicit
|
|
162
|
+
// retry) never sees a stale miss for more than ~one refresh.
|
|
163
|
+
const SHELL_PROBE_HIT_TTL_MS = 5 * 60_000;
|
|
164
|
+
const SHELL_PROBE_MISS_TTL_MS = 5_000;
|
|
165
|
+
let shellProbeCache = null;
|
|
166
|
+
/**
|
|
167
|
+
* Merged login+interactive shell PATH for GUI-launched processes (darwin only;
|
|
168
|
+
* undefined elsewhere or when probing fails). The bundled-runtime daemon spawn
|
|
169
|
+
* uses this so per-bot CLIs installed via nvm/fnm/homebrew stay findable —
|
|
170
|
+
* PtyBackend spawns CLIs without any rc-sourcing shell wrapper, so whatever
|
|
171
|
+
* PATH the daemon starts with is what `#!/usr/bin/env node` resolves against.
|
|
172
|
+
*/
|
|
173
|
+
export function probeShellPathEnv() {
|
|
174
|
+
if (process.platform !== 'darwin')
|
|
175
|
+
return undefined;
|
|
176
|
+
const execFile = defaultExecFileSync;
|
|
177
|
+
return cachedShellPathWhich(execFile, {}).pathEnv;
|
|
178
|
+
}
|
|
179
|
+
function cachedShellPathWhich(execFile, deps) {
|
|
180
|
+
// Tests inject execFileSync/env; caching across injected deps would leak
|
|
181
|
+
// state between tests, so the cache only serves the production defaults.
|
|
182
|
+
const cacheable = !deps.execFileSync && !deps.env;
|
|
183
|
+
if (cacheable && shellProbeCache) {
|
|
184
|
+
const ttl = shellProbeCache.value.bins.length ? SHELL_PROBE_HIT_TTL_MS : SHELL_PROBE_MISS_TTL_MS;
|
|
185
|
+
if (Date.now() - shellProbeCache.at < ttl)
|
|
186
|
+
return shellProbeCache.value;
|
|
156
187
|
}
|
|
157
|
-
|
|
158
|
-
|
|
188
|
+
const value = runShellPathWhich(execFile, deps.env ?? process.env);
|
|
189
|
+
if (cacheable)
|
|
190
|
+
shellProbeCache = { at: Date.now(), value };
|
|
191
|
+
return value;
|
|
192
|
+
}
|
|
193
|
+
function runShellPathWhich(execFile, env) {
|
|
194
|
+
const bins = [];
|
|
195
|
+
const pathParts = [];
|
|
196
|
+
const seenBins = new Set();
|
|
197
|
+
const seenParts = new Set();
|
|
198
|
+
for (const probe of shellPathProbes(env)) {
|
|
199
|
+
let out;
|
|
200
|
+
try {
|
|
201
|
+
// `|| true` keeps the probe's $PATH usable even when this particular
|
|
202
|
+
// shell flavor cannot see botmux — the PATH is still needed downstream.
|
|
203
|
+
out = execFile(probe.shell, [probe.flags, `printf '${LOGIN_SHELL_PATH_MARKER}%s\\n' "$PATH"; which -a botmux || true`], {
|
|
204
|
+
encoding: 'utf-8',
|
|
205
|
+
timeout: 3_000,
|
|
206
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
const parsed = splitLoginShellWhichOutput(out);
|
|
213
|
+
for (const bin of parsed.bins) {
|
|
214
|
+
if (seenBins.has(bin))
|
|
215
|
+
continue;
|
|
216
|
+
seenBins.add(bin);
|
|
217
|
+
bins.push(bin);
|
|
218
|
+
}
|
|
219
|
+
for (const part of parsed.pathEnv?.split(delimiter) ?? []) {
|
|
220
|
+
const trimmed = part.trim();
|
|
221
|
+
if (!trimmed || seenParts.has(trimmed))
|
|
222
|
+
continue;
|
|
223
|
+
seenParts.add(trimmed);
|
|
224
|
+
pathParts.push(trimmed);
|
|
225
|
+
}
|
|
159
226
|
}
|
|
227
|
+
return { bins, ...(pathParts.length ? { pathEnv: pathParts.join(delimiter) } : {}) };
|
|
160
228
|
}
|
|
161
229
|
function readPackageVersion(root, exists, readFile, execFile) {
|
|
162
230
|
const packagePath = join(root, 'package.json');
|
|
@@ -186,7 +254,9 @@ function splitLoginShellWhichOutput(out) {
|
|
|
186
254
|
? lines[markerIndex].slice(LOGIN_SHELL_PATH_MARKER.length).trim() || undefined
|
|
187
255
|
: undefined;
|
|
188
256
|
const binLines = markerIndex >= 0 ? lines.slice(markerIndex + 1) : lines;
|
|
189
|
-
|
|
257
|
+
// Interactive rc files can echo arbitrary text and zsh's `which` prints
|
|
258
|
+
// "botmux not found" to stdout — keep only absolute paths.
|
|
259
|
+
return { bins: binLines.filter(line => line.startsWith('/')), ...(pathEnv ? { pathEnv } : {}) };
|
|
190
260
|
}
|
|
191
261
|
function isSemverVersion(version) {
|
|
192
262
|
return /^v?\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(version.trim());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-runtime.js","sourceRoot":"","sources":["../../../src/desktop/main/external-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,YAAY,IAAI,mBAAmB,EAAE,YAAY,IAAI,mBAAmB,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;AACjK,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"external-runtime.js","sourceRoot":"","sources":["../../../src/desktop/main/external-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/ipc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAInG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAG9D,MAAM,WAAW,mBAAmB;IAClC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;CAChD,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/ipc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAInG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAG9D,MAAM,WAAW,mBAAmB;IAClC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;CAChD,GAAG,IAAI,CAyCP;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC1C,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,mBAAmB,CAqCtB"}
|
package/dist/desktop/main/ipc.js
CHANGED
|
@@ -8,6 +8,7 @@ export function registerDesktopIpc(args) {
|
|
|
8
8
|
// Keep the renderer's surface area narrow: every filesystem/process action
|
|
9
9
|
// must go through an explicit handler here.
|
|
10
10
|
ipcMain.handle('desktop:get-state', () => args.runtime.getState());
|
|
11
|
+
ipcMain.handle('desktop:get-device-status', () => args.runtime.getDeviceStatus());
|
|
11
12
|
ipcMain.handle('desktop:start', () => runRuntimeAction(args.runtime.start, args.monitor));
|
|
12
13
|
ipcMain.handle('desktop:stop', () => runRuntimeAction(args.runtime.stop, args.monitor));
|
|
13
14
|
ipcMain.handle('desktop:restart', () => runRuntimeAction(args.runtime.restart, args.monitor));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../src/desktop/main/ipc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../src/desktop/main/ipc.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,27 @@ export interface BuildExternalBotmuxCommandInput {
|
|
|
17
17
|
baseEnv: NodeJS.ProcessEnv;
|
|
18
18
|
pathEnv?: string;
|
|
19
19
|
}
|
|
20
|
+
export interface BuildBundledBotmuxCommandInput {
|
|
21
|
+
nodePath: string;
|
|
22
|
+
cliPath: string;
|
|
23
|
+
botmuxHome: string;
|
|
24
|
+
args: string[];
|
|
25
|
+
baseEnv: NodeJS.ProcessEnv;
|
|
26
|
+
/** Probed user shell PATH (zsh/bash, profile+rc) — see probeShellPathEnv. */
|
|
27
|
+
pathEnv?: string;
|
|
28
|
+
}
|
|
20
29
|
export declare function buildBotmuxCommand(input: BuildBotmuxCommandInput): BotmuxCommand;
|
|
30
|
+
export declare function buildBundledBotmuxCommand(input: BuildBundledBotmuxCommandInput): BotmuxCommand;
|
|
21
31
|
export declare function buildExternalBotmuxCommand(input: BuildExternalBotmuxCommandInput): BotmuxCommand;
|
|
32
|
+
/**
|
|
33
|
+
* PATH for anything spawned on behalf of the bundled runtime (daemon start and
|
|
34
|
+
* pm2 contact alike — pm2's daemon env sticks and propagates into resurrected
|
|
35
|
+
* apps, so BOTH chains must agree on ordering or which `node` a per-bot CLI
|
|
36
|
+
* gets would depend on pm2 startup order). User shell PATH first: their
|
|
37
|
+
* nvm/fnm node keeps winning like in a terminal; the bundled node dir is only
|
|
38
|
+
* the fallback for `#!/usr/bin/env node` when the user has no node at all.
|
|
39
|
+
* Callers never rely on this PATH to locate node/pm2 themselves — both are
|
|
40
|
+
* invoked via absolute paths.
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildBundledPath(current: string | undefined, nodePath: string, pathEnv: string | undefined): string;
|
|
22
43
|
//# sourceMappingURL=node-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-command.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/node-command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,aAAa,CAahF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,GAAG,aAAa,CAgBhG"}
|
|
1
|
+
{"version":3,"file":"node-command.d.ts","sourceRoot":"","sources":["../../../src/desktop/main/node-command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,aAAa,CAahF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,aAAa,CAoB9F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,GAAG,aAAa,CAgBhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUnH"}
|
|
@@ -13,6 +13,26 @@ export function buildBotmuxCommand(input) {
|
|
|
13
13
|
},
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
export function buildBundledBotmuxCommand(input) {
|
|
17
|
+
const env = {
|
|
18
|
+
...input.baseEnv,
|
|
19
|
+
// Finder-launched apps only carry launchd's minimal PATH. The daemon this
|
|
20
|
+
// command starts must still find per-bot CLIs (claude/codex/traex/... via
|
|
21
|
+
// nvm/fnm/homebrew) and a `node` for their `#!/usr/bin/env node` shebangs,
|
|
22
|
+
// so repair PATH: user's shell PATH first (their nvm node keeps winning,
|
|
23
|
+
// matching terminal behavior), bundled node as fallback, then well-known
|
|
24
|
+
// install dirs.
|
|
25
|
+
PATH: buildBundledPath(input.baseEnv.PATH, input.nodePath, input.pathEnv),
|
|
26
|
+
PM2_HOME: join(input.botmuxHome, 'pm2'),
|
|
27
|
+
SESSION_DATA_DIR: join(input.botmuxHome, 'data'),
|
|
28
|
+
};
|
|
29
|
+
delete env.ELECTRON_RUN_AS_NODE;
|
|
30
|
+
return {
|
|
31
|
+
command: input.nodePath,
|
|
32
|
+
args: [input.cliPath, ...input.args],
|
|
33
|
+
env,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
16
36
|
export function buildExternalBotmuxCommand(input) {
|
|
17
37
|
const env = {
|
|
18
38
|
...input.baseEnv,
|
|
@@ -29,6 +49,27 @@ export function buildExternalBotmuxCommand(input) {
|
|
|
29
49
|
env,
|
|
30
50
|
};
|
|
31
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* PATH for anything spawned on behalf of the bundled runtime (daemon start and
|
|
54
|
+
* pm2 contact alike — pm2's daemon env sticks and propagates into resurrected
|
|
55
|
+
* apps, so BOTH chains must agree on ordering or which `node` a per-bot CLI
|
|
56
|
+
* gets would depend on pm2 startup order). User shell PATH first: their
|
|
57
|
+
* nvm/fnm node keeps winning like in a terminal; the bundled node dir is only
|
|
58
|
+
* the fallback for `#!/usr/bin/env node` when the user has no node at all.
|
|
59
|
+
* Callers never rely on this PATH to locate node/pm2 themselves — both are
|
|
60
|
+
* invoked via absolute paths.
|
|
61
|
+
*/
|
|
62
|
+
export function buildBundledPath(current, nodePath, pathEnv) {
|
|
63
|
+
return joinPathEntries([
|
|
64
|
+
pathEnv,
|
|
65
|
+
dirname(nodePath),
|
|
66
|
+
'/opt/homebrew/bin',
|
|
67
|
+
'/usr/local/bin',
|
|
68
|
+
'/usr/bin',
|
|
69
|
+
'/bin',
|
|
70
|
+
current,
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
32
73
|
function buildExternalPath(current, binPath, pathEnv) {
|
|
33
74
|
return joinPathEntries([
|
|
34
75
|
dirname(binPath),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-command.js","sourceRoot":"","sources":["../../../src/desktop/main/node-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"node-command.js","sourceRoot":"","sources":["../../../src/desktop/main/node-command.ts"],"names":[],"mappings":"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"}
|