@beeos-ai/device-agent 0.9.13 → 0.10.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/device-compat.d.ts +14 -0
- package/dist/adapters/device-compat.js +71 -0
- package/dist/adapters/device-compat.js.map +1 -0
- package/dist/agent-runtime/adapters/index.d.ts +1 -3
- package/dist/agent-runtime/adapters/index.js +1 -3
- package/dist/agent-runtime/adapters/index.js.map +1 -1
- package/dist/agent-runtime/adapters/openai.d.ts +5 -5
- package/dist/agent-runtime/adapters/openai.js +19 -6
- package/dist/agent-runtime/adapters/openai.js.map +1 -1
- package/dist/agent-runtime/adapters/registry.d.ts +1 -1
- package/dist/agent-runtime/adapters/registry.js +3 -3
- package/dist/agent-runtime/adapters/registry.js.map +1 -1
- package/dist/agent-runtime/agent-runner.d.ts +1 -1
- package/dist/agent-runtime/factory.d.ts +22 -0
- package/dist/agent-runtime/factory.js +25 -0
- package/dist/agent-runtime/factory.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +9 -4
- package/dist/agent-runtime/index.js +9 -4
- package/dist/agent-runtime/index.js.map +1 -1
- package/dist/{model → agent-runtime/models}/base.d.ts +1 -1
- package/dist/{model → agent-runtime/models}/base.js.map +1 -1
- package/dist/{model → agent-runtime/models}/client.d.ts +3 -3
- package/dist/{model → agent-runtime/models}/client.js +2 -2
- package/dist/agent-runtime/models/client.js.map +1 -0
- package/dist/agent-runtime/models/image/compress.js.map +1 -0
- package/dist/{model → agent-runtime/models}/image/transport.d.ts +2 -2
- package/dist/{model → agent-runtime/models}/image/transport.js +1 -1
- package/dist/agent-runtime/models/image/transport.js.map +1 -0
- package/dist/agent-runtime/models/vlm/autoglm.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm}/base.d.ts +1 -1
- package/dist/agent-runtime/models/vlm/base.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm}/general.js +19 -25
- package/dist/agent-runtime/models/vlm/general.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm}/guiowl.js +1 -1
- package/dist/agent-runtime/models/vlm/guiowl.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm}/index.d.ts +0 -2
- package/dist/agent-runtime/models/vlm/index.js +7 -0
- package/dist/agent-runtime/models/vlm/index.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm}/maiui.js +1 -1
- package/dist/agent-runtime/models/vlm/maiui.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm}/qwenvl.js +1 -1
- package/dist/agent-runtime/models/vlm/qwenvl.js.map +1 -0
- package/dist/{model/adapters → agent-runtime/models/vlm/shared}/tool-call.d.ts +1 -1
- package/dist/agent-runtime/models/vlm/shared/tool-call.js.map +1 -0
- package/dist/agent-runtime/modes/hybrid/index.d.ts +58 -0
- package/dist/{adapters/agentcore-runner.js → agent-runtime/modes/hybrid/index.js} +21 -54
- package/dist/agent-runtime/modes/hybrid/index.js.map +1 -0
- package/dist/agent-runtime/{planner → modes/hybrid/planner}/base.d.ts +2 -2
- package/dist/agent-runtime/modes/hybrid/planner/base.js.map +1 -0
- package/dist/agent-runtime/modes/hybrid/planner/llm-planner.js.map +1 -0
- package/dist/agent-runtime/modes/hybrid/planner/noop-planner.js.map +1 -0
- package/dist/agent-runtime/{planner → modes/hybrid/planner}/prompts.d.ts +2 -2
- package/dist/agent-runtime/modes/hybrid/planner/prompts.js.map +1 -0
- package/dist/{adapters → agent-runtime/modes/orchestrator}/app-guide.d.ts +1 -1
- package/dist/{adapters → agent-runtime/modes/orchestrator}/app-guide.js +51 -6
- package/dist/agent-runtime/modes/orchestrator/app-guide.js.map +1 -0
- package/dist/{adapters/agentcore-orchestrator.d.ts → agent-runtime/modes/orchestrator/index.d.ts} +5 -6
- package/dist/{adapters/agentcore-orchestrator.js → agent-runtime/modes/orchestrator/index.js} +30 -21
- package/dist/agent-runtime/modes/orchestrator/index.js.map +1 -0
- package/dist/{adapters/orchestrator-agent-prompt.js → agent-runtime/modes/orchestrator/prompt.js} +5 -11
- package/dist/agent-runtime/modes/orchestrator/prompt.js.map +1 -0
- package/dist/agent-runtime/plan-executor.d.ts +1 -1
- package/dist/agent-runtime/reflection.js +46 -36
- package/dist/agent-runtime/reflection.js.map +1 -1
- package/dist/agent-runtime/vlm.d.ts +17 -0
- package/dist/agent-runtime/vlm.js +18 -0
- package/dist/agent-runtime/vlm.js.map +1 -0
- package/dist/api.d.ts +9 -20
- package/dist/api.js +26 -33
- package/dist/api.js.map +1 -1
- package/dist/app/agent-host.js +11 -0
- package/dist/app/agent-host.js.map +1 -1
- package/dist/app/multi-device-host.d.ts +143 -0
- package/dist/app/multi-device-host.js +237 -0
- package/dist/app/multi-device-host.js.map +1 -0
- package/dist/app/plugin-commands/device-status-command.d.ts +28 -0
- package/dist/app/plugin-commands/device-status-command.js +101 -0
- package/dist/app/plugin-commands/device-status-command.js.map +1 -0
- package/dist/app/session-manager.d.ts +1 -0
- package/dist/app/session-manager.js +12 -11
- package/dist/app/session-manager.js.map +1 -1
- package/dist/bootstrap.d.ts +0 -2
- package/dist/bootstrap.js +131 -78
- package/dist/bootstrap.js.map +1 -1
- package/dist/config/loader.d.ts +4 -19
- package/dist/config/loader.js +64 -89
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +26 -40
- package/dist/config/schema.js +30 -57
- package/dist/config/schema.js.map +1 -1
- package/dist/core/task-outcome.d.ts +32 -0
- package/dist/core/task-outcome.js +68 -0
- package/dist/core/task-outcome.js.map +1 -0
- package/dist/fleet/adapters/process/in-process-manager.d.ts +76 -0
- package/dist/fleet/adapters/process/in-process-manager.js +206 -0
- package/dist/fleet/adapters/process/in-process-manager.js.map +1 -0
- package/dist/fleet/adapters/process/node-process-manager.d.ts +19 -0
- package/dist/fleet/adapters/process/node-process-manager.js +1 -1
- package/dist/fleet/adapters/process/node-process-manager.js.map +1 -1
- package/dist/fleet/supervisor.d.ts +21 -0
- package/dist/fleet/supervisor.js +204 -9
- package/dist/fleet/supervisor.js.map +1 -1
- package/dist/inbound/acp/handlers/models.js +0 -1
- package/dist/inbound/acp/handlers/models.js.map +1 -1
- package/dist/inbound/cli/fleet-command.d.ts +32 -0
- package/dist/inbound/cli/fleet-command.js +51 -2
- package/dist/inbound/cli/fleet-command.js.map +1 -1
- package/dist/inbound/cli/main.d.ts +3 -8
- package/dist/inbound/cli/main.js +14 -54
- package/dist/inbound/cli/main.js.map +1 -1
- package/dist/inbound/cli/run-command.d.ts +2 -2
- package/dist/inbound/cli/run-command.js +10 -9
- package/dist/inbound/cli/run-command.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/plugins/message-bus/device-command.d.ts +70 -0
- package/dist/plugins/message-bus/device-command.js +197 -0
- package/dist/plugins/message-bus/device-command.js.map +1 -0
- package/dist/plugins/message-bus/index.d.ts +16 -0
- package/dist/plugins/message-bus/index.js +17 -0
- package/dist/plugins/message-bus/index.js.map +1 -1
- package/dist/plugins/message-bus/ms-channel-notifier.js +30 -2
- package/dist/plugins/message-bus/ms-channel-notifier.js.map +1 -1
- package/dist/ports/agent-core.d.ts +12 -6
- package/dist/ports/agent-host.d.ts +2 -0
- package/package.json +1 -1
- package/dist/adapters/agentcore-inner-loop.d.ts +0 -28
- package/dist/adapters/agentcore-inner-loop.js +0 -71
- package/dist/adapters/agentcore-inner-loop.js.map +0 -1
- package/dist/adapters/agentcore-orchestrator.js.map +0 -1
- package/dist/adapters/agentcore-runner.d.ts +0 -70
- package/dist/adapters/agentcore-runner.js.map +0 -1
- package/dist/adapters/app-guide.js.map +0 -1
- package/dist/adapters/orchestrator-agent-prompt.js.map +0 -1
- package/dist/adapters/vlm-inner-loop.d.ts +0 -94
- package/dist/adapters/vlm-inner-loop.js +0 -202
- package/dist/adapters/vlm-inner-loop.js.map +0 -1
- package/dist/agent-runtime/adapters/ui-tars.d.ts +0 -13
- package/dist/agent-runtime/adapters/ui-tars.js +0 -22
- package/dist/agent-runtime/adapters/ui-tars.js.map +0 -1
- package/dist/agent-runtime/planner/base.js.map +0 -1
- package/dist/agent-runtime/planner/llm-planner.js.map +0 -1
- package/dist/agent-runtime/planner/noop-planner.js.map +0 -1
- package/dist/agent-runtime/planner/prompts.js.map +0 -1
- package/dist/agent.d.ts +0 -110
- package/dist/agent.js +0 -162
- package/dist/agent.js.map +0 -1
- package/dist/grounding/grounder.d.ts +0 -46
- package/dist/grounding/grounder.js +0 -82
- package/dist/grounding/grounder.js.map +0 -1
- package/dist/model/adapters/autoglm.js.map +0 -1
- package/dist/model/adapters/base.js.map +0 -1
- package/dist/model/adapters/general.js.map +0 -1
- package/dist/model/adapters/guiowl.js.map +0 -1
- package/dist/model/adapters/index.js +0 -9
- package/dist/model/adapters/index.js.map +0 -1
- package/dist/model/adapters/maiui.js.map +0 -1
- package/dist/model/adapters/qwenvl.js.map +0 -1
- package/dist/model/adapters/showui.d.ts +0 -1
- package/dist/model/adapters/showui.js +0 -132
- package/dist/model/adapters/showui.js.map +0 -1
- package/dist/model/adapters/tool-call.js.map +0 -1
- package/dist/model/adapters/uitars.d.ts +0 -1
- package/dist/model/adapters/uitars.js +0 -176
- package/dist/model/adapters/uitars.js.map +0 -1
- package/dist/model/client.js.map +0 -1
- package/dist/model/image/compress.js.map +0 -1
- package/dist/model/image/transport.js.map +0 -1
- /package/dist/{model → agent-runtime/models}/base.js +0 -0
- /package/dist/{model → agent-runtime/models}/image/compress.d.ts +0 -0
- /package/dist/{model → agent-runtime/models}/image/compress.js +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/autoglm.d.ts +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/autoglm.js +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/base.js +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/general.d.ts +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/guiowl.d.ts +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/maiui.d.ts +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm}/qwenvl.d.ts +0 -0
- /package/dist/{model/adapters → agent-runtime/models/vlm/shared}/tool-call.js +0 -0
- /package/dist/agent-runtime/{planner → modes/hybrid/planner}/base.js +0 -0
- /package/dist/agent-runtime/{planner → modes/hybrid/planner}/llm-planner.d.ts +0 -0
- /package/dist/agent-runtime/{planner → modes/hybrid/planner}/llm-planner.js +0 -0
- /package/dist/agent-runtime/{planner → modes/hybrid/planner}/noop-planner.d.ts +0 -0
- /package/dist/agent-runtime/{planner → modes/hybrid/planner}/noop-planner.js +0 -0
- /package/dist/agent-runtime/{planner → modes/hybrid/planner}/prompts.js +0 -0
- /package/dist/{adapters/orchestrator-agent-prompt.d.ts → agent-runtime/modes/orchestrator/prompt.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-host.js","sourceRoot":"","sources":["../../src/app/agent-host.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-host.js","sourceRoot":"","sources":["../../src/app/agent-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application — MultiDeviceHost.
|
|
3
|
+
*
|
|
4
|
+
* Hosts N per-device agent runtimes inside a SINGLE OS process. This is the
|
|
5
|
+
* spine of the "one process controls many devices" refactor.
|
|
6
|
+
*
|
|
7
|
+
* Design premise (see dev_docs device-agent refactor notes): `bootstrap()`
|
|
8
|
+
* is already a self-contained, config-driven per-device runtime factory — it
|
|
9
|
+
* loads one identity, builds one device adapter, one AgentHost, one
|
|
10
|
+
* SessionManager, one message-bus connection, and returns its own `stop()`.
|
|
11
|
+
* The whole function body is per-device; the only genuinely process-shared
|
|
12
|
+
* things are the `device-mcp-server` (already a singleton multi-device server
|
|
13
|
+
* the runtimes reach over HTTP) and the logger.
|
|
14
|
+
*
|
|
15
|
+
* So MultiDeviceHost does NOT re-implement bootstrap. It composes it:
|
|
16
|
+
*
|
|
17
|
+
* - For every {@link DeviceBinding} it derives a per-device `Config`
|
|
18
|
+
* override (mirroring the fleet supervisor's `spawnOptionsFor` +
|
|
19
|
+
* node-process-manager daemon argv mapping) and calls `bootstrap()`
|
|
20
|
+
* once. Every runtime points its `McpClient` at the SAME shared
|
|
21
|
+
* `mcpUrl` with `defaultDevice = serial`, so all per-device tool calls
|
|
22
|
+
* route through the one BackendRegistry MCP process.
|
|
23
|
+
*
|
|
24
|
+
* - Each runtime gets a `logger.child({ device: serial })` so every log
|
|
25
|
+
* line is attributable to a device once N runtimes interleave in one
|
|
26
|
+
* stdout.
|
|
27
|
+
*
|
|
28
|
+
* - `addDevice` is fault-isolated: a runtime that fails to boot (bridge
|
|
29
|
+
* discovery failure, bad key, offline gateway) logs and is skipped —
|
|
30
|
+
* it never throws up and takes the other devices down. This is the
|
|
31
|
+
* CPU/heap/failure isolation that separate processes gave us for free
|
|
32
|
+
* and that we now have to restore in code.
|
|
33
|
+
*
|
|
34
|
+
* What MultiDeviceHost intentionally does NOT own:
|
|
35
|
+
*
|
|
36
|
+
* - The shared `device-mcp-server` process. The caller (fleet / CLI)
|
|
37
|
+
* owns its lifecycle and passes the resolved `mcpUrl`. Keeping the MCP
|
|
38
|
+
* out of here means a future autospawn-once strategy can live in one
|
|
39
|
+
* place without touching the per-device composition.
|
|
40
|
+
* - scrcpy-bridge. It is a native binary and cannot live in-process; the
|
|
41
|
+
* fleet supervisor continues to spawn it per device.
|
|
42
|
+
*/
|
|
43
|
+
import type { Config } from "../config/schema.js";
|
|
44
|
+
import type { DeviceBinding } from "../fleet/domain/device.js";
|
|
45
|
+
import { type Logger } from "../logger/index.js";
|
|
46
|
+
export interface MultiDeviceHostOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Shared `device-mcp-server` base URL every per-device runtime routes
|
|
49
|
+
* through. Each runtime sets `defaultDevice = serial` so the singleton
|
|
50
|
+
* BackendRegistry resolves the right backend per tool call.
|
|
51
|
+
*/
|
|
52
|
+
mcpUrl: string;
|
|
53
|
+
/**
|
|
54
|
+
* Base config applied to EVERY device before the per-device binding
|
|
55
|
+
* override (logLevel, vlm.*, outer.*, planMode, messageBus.enabled, …).
|
|
56
|
+
* Nested groups here REPLACE the loaded ones wholesale — that is the
|
|
57
|
+
* intent: this is the shared fleet-wide configuration.
|
|
58
|
+
*/
|
|
59
|
+
baseConfig?: Partial<Config>;
|
|
60
|
+
/**
|
|
61
|
+
* Fallback Agent Gateway URL when a binding carries no per-device
|
|
62
|
+
* `agentGatewayUrl` override. Mirrors the supervisor's
|
|
63
|
+
* `defaultAgentGatewayUrl`.
|
|
64
|
+
*/
|
|
65
|
+
defaultAgentGatewayUrl?: string;
|
|
66
|
+
/** Optional explicit Bridge WS URL forwarded to every runtime. */
|
|
67
|
+
bridgeUrl?: string;
|
|
68
|
+
/** Optional region forwarded to every runtime (bridge discovery). */
|
|
69
|
+
region?: string;
|
|
70
|
+
/** Process-level logger; per-device child loggers are derived from it. */
|
|
71
|
+
logger?: Logger;
|
|
72
|
+
/** Version string surfaced in each runtime's agent-sync declaration. */
|
|
73
|
+
version?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface DeviceRuntimeSnapshot {
|
|
76
|
+
serial: string;
|
|
77
|
+
name: string;
|
|
78
|
+
instanceId: string | null;
|
|
79
|
+
}
|
|
80
|
+
export declare class MultiDeviceHost {
|
|
81
|
+
private readonly mcpUrl;
|
|
82
|
+
private readonly baseConfig;
|
|
83
|
+
private readonly defaultAgentGatewayUrl;
|
|
84
|
+
private readonly bridgeUrl;
|
|
85
|
+
private readonly region;
|
|
86
|
+
private readonly log;
|
|
87
|
+
private readonly version;
|
|
88
|
+
private readonly runtimes;
|
|
89
|
+
/**
|
|
90
|
+
* Serialises `addDevice` / `removeDevice` per serial so two rapid
|
|
91
|
+
* binding events for the same device can't race into a double-boot or a
|
|
92
|
+
* boot/teardown interleave.
|
|
93
|
+
*/
|
|
94
|
+
private readonly inflight;
|
|
95
|
+
private stopped;
|
|
96
|
+
constructor(opts: MultiDeviceHostOptions);
|
|
97
|
+
/** Number of currently-running device runtimes. */
|
|
98
|
+
get size(): number;
|
|
99
|
+
has(serial: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Boot a per-device runtime for `binding`. Idempotent (a serial already
|
|
102
|
+
* running is a no-op) and fault-isolated (a boot failure is logged, never
|
|
103
|
+
* thrown — the other devices keep running). Serialised per serial.
|
|
104
|
+
*/
|
|
105
|
+
addDevice(binding: DeviceBinding, opts?: {
|
|
106
|
+
configFile?: string;
|
|
107
|
+
}): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Stop and drop the runtime for `serial`. No-op if not running.
|
|
110
|
+
* Serialised per serial.
|
|
111
|
+
*/
|
|
112
|
+
removeDevice(serial: string): Promise<void>;
|
|
113
|
+
/** Read-only view of running runtimes (for a fleet status endpoint). */
|
|
114
|
+
snapshot(): DeviceRuntimeSnapshot[];
|
|
115
|
+
/**
|
|
116
|
+
* Reconcile the running set against a desired binding list: boot any
|
|
117
|
+
* newly-present device, tear down any that disappeared. Lets a poll loop
|
|
118
|
+
* (BeeosCliStore) drive the host with one call.
|
|
119
|
+
*/
|
|
120
|
+
reconcile(desired: DeviceBinding[]): Promise<void>;
|
|
121
|
+
/** Stop every runtime in parallel. Safe to call multiple times. */
|
|
122
|
+
stop(): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Per-device `Config` override derived from a binding. Mirrors the fleet
|
|
125
|
+
* supervisor's `spawnOptionsFor()` and the node-process-manager daemon
|
|
126
|
+
* argv assembly so an in-process runtime is wired identically to a
|
|
127
|
+
* spawned daemon child:
|
|
128
|
+
*
|
|
129
|
+
* --key <keyFile> → keyFile
|
|
130
|
+
* --mcp-url <shared> → mcpUrl (+ mcpAutospawn=false)
|
|
131
|
+
* --device <serial> / --adb <s> → adbSerial (ADB backends only)
|
|
132
|
+
* --agent-gateway-url <url> → agentGatewayUrl (per-device > default)
|
|
133
|
+
* --http --http-port <p> → httpEnabled + httpPort (sticky)
|
|
134
|
+
* backend == "adb" ? android → mode
|
|
135
|
+
*
|
|
136
|
+
* The shared `baseConfig` (vlm/outer/planMode/messageBus/…) is layered
|
|
137
|
+
* UNDER the per-device fields so a device can never silently lose its
|
|
138
|
+
* identity or routing to a fleet-wide default.
|
|
139
|
+
*/
|
|
140
|
+
private bindingToConfig;
|
|
141
|
+
/** FIFO-per-serial serialiser so add/remove for one device never race. */
|
|
142
|
+
private serialize;
|
|
143
|
+
}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application — MultiDeviceHost.
|
|
3
|
+
*
|
|
4
|
+
* Hosts N per-device agent runtimes inside a SINGLE OS process. This is the
|
|
5
|
+
* spine of the "one process controls many devices" refactor.
|
|
6
|
+
*
|
|
7
|
+
* Design premise (see dev_docs device-agent refactor notes): `bootstrap()`
|
|
8
|
+
* is already a self-contained, config-driven per-device runtime factory — it
|
|
9
|
+
* loads one identity, builds one device adapter, one AgentHost, one
|
|
10
|
+
* SessionManager, one message-bus connection, and returns its own `stop()`.
|
|
11
|
+
* The whole function body is per-device; the only genuinely process-shared
|
|
12
|
+
* things are the `device-mcp-server` (already a singleton multi-device server
|
|
13
|
+
* the runtimes reach over HTTP) and the logger.
|
|
14
|
+
*
|
|
15
|
+
* So MultiDeviceHost does NOT re-implement bootstrap. It composes it:
|
|
16
|
+
*
|
|
17
|
+
* - For every {@link DeviceBinding} it derives a per-device `Config`
|
|
18
|
+
* override (mirroring the fleet supervisor's `spawnOptionsFor` +
|
|
19
|
+
* node-process-manager daemon argv mapping) and calls `bootstrap()`
|
|
20
|
+
* once. Every runtime points its `McpClient` at the SAME shared
|
|
21
|
+
* `mcpUrl` with `defaultDevice = serial`, so all per-device tool calls
|
|
22
|
+
* route through the one BackendRegistry MCP process.
|
|
23
|
+
*
|
|
24
|
+
* - Each runtime gets a `logger.child({ device: serial })` so every log
|
|
25
|
+
* line is attributable to a device once N runtimes interleave in one
|
|
26
|
+
* stdout.
|
|
27
|
+
*
|
|
28
|
+
* - `addDevice` is fault-isolated: a runtime that fails to boot (bridge
|
|
29
|
+
* discovery failure, bad key, offline gateway) logs and is skipped —
|
|
30
|
+
* it never throws up and takes the other devices down. This is the
|
|
31
|
+
* CPU/heap/failure isolation that separate processes gave us for free
|
|
32
|
+
* and that we now have to restore in code.
|
|
33
|
+
*
|
|
34
|
+
* What MultiDeviceHost intentionally does NOT own:
|
|
35
|
+
*
|
|
36
|
+
* - The shared `device-mcp-server` process. The caller (fleet / CLI)
|
|
37
|
+
* owns its lifecycle and passes the resolved `mcpUrl`. Keeping the MCP
|
|
38
|
+
* out of here means a future autospawn-once strategy can live in one
|
|
39
|
+
* place without touching the per-device composition.
|
|
40
|
+
* - scrcpy-bridge. It is a native binary and cannot live in-process; the
|
|
41
|
+
* fleet supervisor continues to spawn it per device.
|
|
42
|
+
*/
|
|
43
|
+
import { bootstrap } from "../bootstrap.js";
|
|
44
|
+
import { getLogger } from "../logger/index.js";
|
|
45
|
+
export class MultiDeviceHost {
|
|
46
|
+
mcpUrl;
|
|
47
|
+
baseConfig;
|
|
48
|
+
defaultAgentGatewayUrl;
|
|
49
|
+
bridgeUrl;
|
|
50
|
+
region;
|
|
51
|
+
log;
|
|
52
|
+
version;
|
|
53
|
+
runtimes = new Map();
|
|
54
|
+
/**
|
|
55
|
+
* Serialises `addDevice` / `removeDevice` per serial so two rapid
|
|
56
|
+
* binding events for the same device can't race into a double-boot or a
|
|
57
|
+
* boot/teardown interleave.
|
|
58
|
+
*/
|
|
59
|
+
inflight = new Map();
|
|
60
|
+
stopped = false;
|
|
61
|
+
constructor(opts) {
|
|
62
|
+
this.mcpUrl = opts.mcpUrl;
|
|
63
|
+
this.baseConfig = opts.baseConfig ?? {};
|
|
64
|
+
this.defaultAgentGatewayUrl = opts.defaultAgentGatewayUrl;
|
|
65
|
+
this.bridgeUrl = opts.bridgeUrl;
|
|
66
|
+
this.region = opts.region;
|
|
67
|
+
this.log = opts.logger ?? getLogger();
|
|
68
|
+
this.version = opts.version ?? "0.0.0";
|
|
69
|
+
}
|
|
70
|
+
/** Number of currently-running device runtimes. */
|
|
71
|
+
get size() {
|
|
72
|
+
return this.runtimes.size;
|
|
73
|
+
}
|
|
74
|
+
has(serial) {
|
|
75
|
+
return this.runtimes.has(serial);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Boot a per-device runtime for `binding`. Idempotent (a serial already
|
|
79
|
+
* running is a no-op) and fault-isolated (a boot failure is logged, never
|
|
80
|
+
* thrown — the other devices keep running). Serialised per serial.
|
|
81
|
+
*/
|
|
82
|
+
async addDevice(binding, opts = {}) {
|
|
83
|
+
if (this.stopped)
|
|
84
|
+
return;
|
|
85
|
+
return this.serialize(binding.serial, async () => {
|
|
86
|
+
if (this.stopped || this.runtimes.has(binding.serial))
|
|
87
|
+
return;
|
|
88
|
+
const childLog = this.log.child({ device: binding.serial });
|
|
89
|
+
const configOverride = this.bindingToConfig(binding);
|
|
90
|
+
// Per-instance VLM / orchestrator config (model, key, baseUrl). The
|
|
91
|
+
// supervisor path materialises `~/.beeos/state.json#agent_config` to a
|
|
92
|
+
// file and the spawned daemon reads it via `--vlm-config-file`; in-process
|
|
93
|
+
// we feed the same file to `bootstrap` as `flags.configFile` so the
|
|
94
|
+
// runtime gets the right model instead of falling back to defaults
|
|
95
|
+
// (the cause of "MODEL PREDICT FAILED" when this was missing).
|
|
96
|
+
const flags = opts.configFile ? { configFile: opts.configFile } : undefined;
|
|
97
|
+
try {
|
|
98
|
+
const agent = await bootstrap({
|
|
99
|
+
flags,
|
|
100
|
+
configOverride,
|
|
101
|
+
logger: childLog,
|
|
102
|
+
version: this.version,
|
|
103
|
+
});
|
|
104
|
+
// A teardown may have raced in while bootstrap was awaiting the
|
|
105
|
+
// network; if so, undo immediately so we don't leak a runtime.
|
|
106
|
+
if (this.stopped || this.runtimes.has(binding.serial)) {
|
|
107
|
+
await agent.stop().catch(() => undefined);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
this.runtimes.set(binding.serial, { serial: binding.serial, binding, agent });
|
|
111
|
+
childLog.info({ name: binding.name, instanceId: binding.instanceId, total: this.runtimes.size }, "device runtime started");
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
// Isolate: one device's boot failure must not abort the fleet.
|
|
115
|
+
childLog.error({ err: e.message, name: binding.name }, "device runtime failed to start (skipped, other devices unaffected)");
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Stop and drop the runtime for `serial`. No-op if not running.
|
|
121
|
+
* Serialised per serial.
|
|
122
|
+
*/
|
|
123
|
+
async removeDevice(serial) {
|
|
124
|
+
return this.serialize(serial, async () => {
|
|
125
|
+
const handle = this.runtimes.get(serial);
|
|
126
|
+
if (!handle)
|
|
127
|
+
return;
|
|
128
|
+
this.runtimes.delete(serial);
|
|
129
|
+
try {
|
|
130
|
+
await handle.agent.stop();
|
|
131
|
+
this.log.info({ device: serial, total: this.runtimes.size }, "device runtime stopped");
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
this.log.warn({ device: serial, err: e.message }, "device runtime stop failed");
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/** Read-only view of running runtimes (for a fleet status endpoint). */
|
|
139
|
+
snapshot() {
|
|
140
|
+
return [...this.runtimes.values()].map((h) => ({
|
|
141
|
+
serial: h.serial,
|
|
142
|
+
name: h.binding.name,
|
|
143
|
+
instanceId: h.binding.instanceId,
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Reconcile the running set against a desired binding list: boot any
|
|
148
|
+
* newly-present device, tear down any that disappeared. Lets a poll loop
|
|
149
|
+
* (BeeosCliStore) drive the host with one call.
|
|
150
|
+
*/
|
|
151
|
+
async reconcile(desired) {
|
|
152
|
+
if (this.stopped)
|
|
153
|
+
return;
|
|
154
|
+
const wanted = new Map(desired.map((b) => [b.serial, b]));
|
|
155
|
+
const toRemove = [...this.runtimes.keys()].filter((s) => !wanted.has(s));
|
|
156
|
+
const toAdd = desired.filter((b) => !this.runtimes.has(b.serial));
|
|
157
|
+
await Promise.all([
|
|
158
|
+
...toRemove.map((s) => this.removeDevice(s)),
|
|
159
|
+
...toAdd.map((b) => this.addDevice(b)),
|
|
160
|
+
]);
|
|
161
|
+
}
|
|
162
|
+
/** Stop every runtime in parallel. Safe to call multiple times. */
|
|
163
|
+
async stop() {
|
|
164
|
+
if (this.stopped)
|
|
165
|
+
return;
|
|
166
|
+
this.stopped = true;
|
|
167
|
+
const handles = [...this.runtimes.values()];
|
|
168
|
+
this.runtimes.clear();
|
|
169
|
+
this.log.info({ count: handles.length }, "multi-device host shutting down");
|
|
170
|
+
await Promise.all(handles.map((h) => h.agent.stop().catch((e) => this.log.warn({ device: h.serial, err: e.message }, "device runtime stop failed during host shutdown"))));
|
|
171
|
+
this.log.info("multi-device host stopped");
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Per-device `Config` override derived from a binding. Mirrors the fleet
|
|
175
|
+
* supervisor's `spawnOptionsFor()` and the node-process-manager daemon
|
|
176
|
+
* argv assembly so an in-process runtime is wired identically to a
|
|
177
|
+
* spawned daemon child:
|
|
178
|
+
*
|
|
179
|
+
* --key <keyFile> → keyFile
|
|
180
|
+
* --mcp-url <shared> → mcpUrl (+ mcpAutospawn=false)
|
|
181
|
+
* --device <serial> / --adb <s> → adbSerial (ADB backends only)
|
|
182
|
+
* --agent-gateway-url <url> → agentGatewayUrl (per-device > default)
|
|
183
|
+
* --http --http-port <p> → httpEnabled + httpPort (sticky)
|
|
184
|
+
* backend == "adb" ? android → mode
|
|
185
|
+
*
|
|
186
|
+
* The shared `baseConfig` (vlm/outer/planMode/messageBus/…) is layered
|
|
187
|
+
* UNDER the per-device fields so a device can never silently lose its
|
|
188
|
+
* identity or routing to a fleet-wide default.
|
|
189
|
+
*/
|
|
190
|
+
bindingToConfig(binding) {
|
|
191
|
+
// Only ADB devices get an `--adb`/serial; desktop / self-attach
|
|
192
|
+
// backends (macos/linux/windows/desktop/mock-desktop) have no ADB
|
|
193
|
+
// transport to point at. Mirrors node-process-manager `isAdbBackend`.
|
|
194
|
+
const isAdbBackend = typeof binding.backend === "string" ? binding.backend === "adb" : true;
|
|
195
|
+
const cfg = {
|
|
196
|
+
...this.baseConfig,
|
|
197
|
+
keyFile: binding.keyFile,
|
|
198
|
+
mode: isAdbBackend ? "android" : "desktop",
|
|
199
|
+
mcpUrl: this.mcpUrl,
|
|
200
|
+
// The host owns the single shared MCP; runtimes must never autospawn
|
|
201
|
+
// their own sibling.
|
|
202
|
+
mcpAutospawn: false,
|
|
203
|
+
};
|
|
204
|
+
if (isAdbBackend) {
|
|
205
|
+
// Canonical 0.4.0 device id is `--device <serial>`; the ADB transport
|
|
206
|
+
// is `--adb <adbSerial ?? serial>`. `config.adbSerial` drives both the
|
|
207
|
+
// AndroidAdbAdapter target and the McpClient `defaultDevice`, so it
|
|
208
|
+
// must be the ADB transport serial the BackendRegistry discovered.
|
|
209
|
+
cfg.adbSerial = binding.adbSerial ?? binding.serial;
|
|
210
|
+
}
|
|
211
|
+
const agw = binding.agentGatewayUrl ?? this.defaultAgentGatewayUrl;
|
|
212
|
+
if (agw)
|
|
213
|
+
cfg.agentGatewayUrl = agw;
|
|
214
|
+
if (this.bridgeUrl)
|
|
215
|
+
cfg.bridgeUrl = this.bridgeUrl;
|
|
216
|
+
if (this.region)
|
|
217
|
+
cfg.region = this.region;
|
|
218
|
+
// HTTP debug is a LOCAL-ONLY (127.0.0.1), default-off REST surface — the
|
|
219
|
+
// cloud never touches it (cloud↔device-agent is the two outbound WS
|
|
220
|
+
// channels: Bridge WS for ACP + Centrifugo WS for the Message Service).
|
|
221
|
+
// Per-device debug servers don't belong in a shared process (N listeners,
|
|
222
|
+
// N ports); a single aggregated endpoint would be the right design if it
|
|
223
|
+
// is ever needed. So we force it OFF here regardless of binding.httpPort
|
|
224
|
+
// or any baseConfig — no port to collide on.
|
|
225
|
+
cfg.httpEnabled = false;
|
|
226
|
+
return cfg;
|
|
227
|
+
}
|
|
228
|
+
/** FIFO-per-serial serialiser so add/remove for one device never race. */
|
|
229
|
+
serialize(serial, fn) {
|
|
230
|
+
const prev = this.inflight.get(serial) ?? Promise.resolve();
|
|
231
|
+
const next = prev.then(fn, fn);
|
|
232
|
+
// Keep the chain alive but don't let a rejection wedge the serial.
|
|
233
|
+
this.inflight.set(serial, next.catch(() => undefined));
|
|
234
|
+
return next;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=multi-device-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-device-host.js","sourceRoot":"","sources":["../../src/app/multi-device-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only device status slash commands.
|
|
3
|
+
*
|
|
4
|
+
* These commands intentionally return plain text instead of attachments so
|
|
5
|
+
* both ACP web chat and message-bus/A2A callers can render the same payload.
|
|
6
|
+
*/
|
|
7
|
+
import type { IMcpRuntime } from "../../mcp-client/runtime.js";
|
|
8
|
+
import type { PluginCommand, PluginCommandContext, PluginCommandResult } from "./types.js";
|
|
9
|
+
type McpProvider = () => IMcpRuntime;
|
|
10
|
+
export declare class BatteryCommandHandler implements PluginCommand {
|
|
11
|
+
private readonly mcpProvider;
|
|
12
|
+
readonly name = "battery";
|
|
13
|
+
readonly description = "Show device battery level, charging state, temperature, voltage, and health";
|
|
14
|
+
readonly emoji = "\uD83D\uDD0B";
|
|
15
|
+
readonly acceptsArgs = false;
|
|
16
|
+
constructor(mcpProvider: McpProvider);
|
|
17
|
+
handle(_ctx: PluginCommandContext): Promise<PluginCommandResult>;
|
|
18
|
+
}
|
|
19
|
+
export declare class StorageCommandHandler implements PluginCommand {
|
|
20
|
+
private readonly mcpProvider;
|
|
21
|
+
readonly name = "storage";
|
|
22
|
+
readonly description = "Show internal storage usage and available space";
|
|
23
|
+
readonly emoji = "\uD83D\uDCBE";
|
|
24
|
+
readonly acceptsArgs = false;
|
|
25
|
+
constructor(mcpProvider: McpProvider);
|
|
26
|
+
handle(_ctx: PluginCommandContext): Promise<PluginCommandResult>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only device status slash commands.
|
|
3
|
+
*
|
|
4
|
+
* These commands intentionally return plain text instead of attachments so
|
|
5
|
+
* both ACP web chat and message-bus/A2A callers can render the same payload.
|
|
6
|
+
*/
|
|
7
|
+
export class BatteryCommandHandler {
|
|
8
|
+
mcpProvider;
|
|
9
|
+
name = "battery";
|
|
10
|
+
description = "Show device battery level, charging state, temperature, voltage, and health";
|
|
11
|
+
emoji = "🔋";
|
|
12
|
+
acceptsArgs = false;
|
|
13
|
+
constructor(mcpProvider) {
|
|
14
|
+
this.mcpProvider = mcpProvider;
|
|
15
|
+
}
|
|
16
|
+
async handle(_ctx) {
|
|
17
|
+
const info = await callReadOnlyTool(this.mcpProvider(), "get_battery");
|
|
18
|
+
return { text: formatBattery(info) };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class StorageCommandHandler {
|
|
22
|
+
mcpProvider;
|
|
23
|
+
name = "storage";
|
|
24
|
+
description = "Show internal storage usage and available space";
|
|
25
|
+
emoji = "💾";
|
|
26
|
+
acceptsArgs = false;
|
|
27
|
+
constructor(mcpProvider) {
|
|
28
|
+
this.mcpProvider = mcpProvider;
|
|
29
|
+
}
|
|
30
|
+
async handle(_ctx) {
|
|
31
|
+
const info = await callReadOnlyTool(this.mcpProvider(), "get_storage");
|
|
32
|
+
return { text: formatStorage(info) };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function callReadOnlyTool(mcp, tool) {
|
|
36
|
+
if (typeof mcp.callTool !== "function") {
|
|
37
|
+
throw new Error("device runtime does not support direct MCP tool calls");
|
|
38
|
+
}
|
|
39
|
+
const out = await mcp.callTool(tool, {});
|
|
40
|
+
if (!out.ok) {
|
|
41
|
+
throw new Error(toolErrorMessage(out.structured, tool));
|
|
42
|
+
}
|
|
43
|
+
if (!out.structured) {
|
|
44
|
+
throw new Error(`${tool} returned no structured content`);
|
|
45
|
+
}
|
|
46
|
+
return out.structured;
|
|
47
|
+
}
|
|
48
|
+
function formatBattery(info) {
|
|
49
|
+
const power = [
|
|
50
|
+
info.acPowered ? "AC" : "",
|
|
51
|
+
info.usbPowered ? "USB" : "",
|
|
52
|
+
].filter(Boolean).join(" + ") || "battery";
|
|
53
|
+
return [
|
|
54
|
+
"Battery",
|
|
55
|
+
`- Level: ${info.level}%`,
|
|
56
|
+
`- Status: ${formatToken(info.status)}`,
|
|
57
|
+
`- Power: ${power}`,
|
|
58
|
+
`- Temperature: ${formatNumber(info.temperatureC, 1)} °C`,
|
|
59
|
+
`- Voltage: ${Math.round(info.voltageMv).toLocaleString("en-US")} mV`,
|
|
60
|
+
`- Health: ${formatToken(info.health)}`,
|
|
61
|
+
].join("\n");
|
|
62
|
+
}
|
|
63
|
+
function formatStorage(info) {
|
|
64
|
+
return [
|
|
65
|
+
"Storage",
|
|
66
|
+
`- Used: ${formatBytes(info.usedBytes)} / ${formatBytes(info.totalBytes)} (${formatNumber(info.usedPercent, 1)}%)`,
|
|
67
|
+
`- Available: ${formatBytes(info.availableBytes)}`,
|
|
68
|
+
].join("\n");
|
|
69
|
+
}
|
|
70
|
+
function formatBytes(bytes) {
|
|
71
|
+
if (!Number.isFinite(bytes) || bytes < 0)
|
|
72
|
+
return "unknown";
|
|
73
|
+
const units = ["B", "KiB", "MiB", "GiB", "TiB"];
|
|
74
|
+
let value = bytes;
|
|
75
|
+
let unit = 0;
|
|
76
|
+
while (value >= 1024 && unit < units.length - 1) {
|
|
77
|
+
value /= 1024;
|
|
78
|
+
unit += 1;
|
|
79
|
+
}
|
|
80
|
+
const digits = unit === 0 ? 0 : 1;
|
|
81
|
+
return `${value.toFixed(digits)} ${units[unit]}`;
|
|
82
|
+
}
|
|
83
|
+
function formatNumber(value, fractionDigits) {
|
|
84
|
+
if (!Number.isFinite(value))
|
|
85
|
+
return "unknown";
|
|
86
|
+
return value.toFixed(fractionDigits);
|
|
87
|
+
}
|
|
88
|
+
function formatToken(value) {
|
|
89
|
+
return value.replace(/_/g, " ");
|
|
90
|
+
}
|
|
91
|
+
function toolErrorMessage(structured, tool) {
|
|
92
|
+
if (structured && typeof structured === "object") {
|
|
93
|
+
const rec = structured;
|
|
94
|
+
if (typeof rec.error === "string" && rec.error)
|
|
95
|
+
return rec.error;
|
|
96
|
+
if (typeof rec.message === "string" && rec.message)
|
|
97
|
+
return rec.message;
|
|
98
|
+
}
|
|
99
|
+
return `${tool} failed`;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=device-status-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-status-command.js","sourceRoot":"","sources":["../../../src/app/plugin-commands/device-status-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -315,6 +315,7 @@ export declare class SessionManager {
|
|
|
315
315
|
* recursively bloat).
|
|
316
316
|
*/
|
|
317
317
|
private _executePrompt;
|
|
318
|
+
private matchPluginCommand;
|
|
318
319
|
/**
|
|
319
320
|
* Build a `[Conversation history ...]` preamble from prior store
|
|
320
321
|
* records on `sessionId`. Pure function — caller (`_executePrompt`)
|