@beeos-ai/device-mcp-server 0.2.3 → 0.4.2
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/backends/android-adb.d.ts +147 -6
- package/dist/backends/android-adb.js +776 -40
- package/dist/backends/android-adb.js.map +1 -1
- package/dist/backends/base.d.ts +243 -7
- package/dist/backends/base.js +81 -2
- package/dist/backends/base.js.map +1 -1
- package/dist/backends/desktop.d.ts +3 -2
- package/dist/backends/desktop.js +9 -3
- package/dist/backends/desktop.js.map +1 -1
- package/dist/backends/linux.js +3 -0
- package/dist/backends/linux.js.map +1 -1
- package/dist/backends/mac.d.ts +11 -2
- package/dist/backends/mac.js +39 -1
- package/dist/backends/mac.js.map +1 -1
- package/dist/backends/stubs/windows.js +3 -0
- package/dist/backends/stubs/windows.js.map +1 -1
- package/dist/cli.d.ts +40 -26
- package/dist/cli.js +118 -84
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/dist/server/app.d.ts +60 -17
- package/dist/server/app.js +182 -138
- package/dist/server/app.js.map +1 -1
- package/dist/server/mcp-server.d.ts +25 -0
- package/dist/server/mcp-server.js +33 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/server/registry.d.ts +111 -0
- package/dist/server/registry.js +191 -0
- package/dist/server/registry.js.map +1 -0
- package/dist/server/stdio.d.ts +29 -0
- package/dist/server/stdio.js +35 -0
- package/dist/server/stdio.js.map +1 -0
- package/dist/server/tool-registry.d.ts +60 -35
- package/dist/server/tool-registry.js +911 -434
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/util/adb-files.d.ts +25 -1
- package/dist/util/adb-files.js +95 -0
- package/dist/util/adb-files.js.map +1 -1
- package/dist/util/locale.d.ts +16 -0
- package/dist/util/locale.js +31 -0
- package/dist/util/locale.js.map +1 -0
- package/dist/util/logger.d.ts +27 -0
- package/dist/util/logger.js +27 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/output-path.d.ts +60 -0
- package/dist/util/output-path.js +123 -0
- package/dist/util/output-path.js.map +1 -0
- package/dist/util/package-name.d.ts +26 -0
- package/dist/util/package-name.js +41 -0
- package/dist/util/package-name.js.map +1 -0
- package/package.json +6 -4
- package/dist/backends/stubs/macos.d.ts +0 -13
- package/dist/backends/stubs/macos.js +0 -27
- package/dist/backends/stubs/macos.js.map +0 -1
- package/dist/server/action-mapping.d.ts +0 -21
- package/dist/server/action-mapping.js +0 -153
- package/dist/server/action-mapping.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/server/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/server/tool-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/util/adb-files.d.ts
CHANGED
|
@@ -63,8 +63,32 @@ export declare function adbPull(runner: AdbRunner, serial: string | undefined, r
|
|
|
63
63
|
* `adb push <hostTmp> <remote>`. The buffer is written to a temp file
|
|
64
64
|
* first because `adb push` reads from disk; piping into stdin is not
|
|
65
65
|
* supported by the file-sync protocol.
|
|
66
|
+
*
|
|
67
|
+
* v3 install-link review (P2-3) hardening:
|
|
68
|
+
*
|
|
69
|
+
* 1. **Pre-flight daemon probe**: `adb get-state` before the push so
|
|
70
|
+
* a dead adb-server fails the push within ~1.5s with
|
|
71
|
+
* `subtype: daemon_died` instead of waiting for the file-IO
|
|
72
|
+
* timeout to fire (default 60s).
|
|
73
|
+
* 2. **Push-size cap**: refuse buffers above 256 MiB (configurable
|
|
74
|
+
* via `opts.maxPushBytes`). Pushing larger blobs through this
|
|
75
|
+
* path means double memory pressure + a disk fsync round-trip;
|
|
76
|
+
* callers should be using a streaming installer instead.
|
|
77
|
+
* 3. **Post-flight daemon probe** on failure: if the runner threw,
|
|
78
|
+
* re-probe the daemon. A failure here promotes the original
|
|
79
|
+
* generic `adb_failed` to `daemon_died`, which is the actionable
|
|
80
|
+
* class — caller knows to kill-and-restart the adb server rather
|
|
81
|
+
* than retry the push.
|
|
82
|
+
*
|
|
83
|
+
* Note: a TRUE in-flight watchdog (kill the push if the daemon dies
|
|
84
|
+
* mid-transfer) requires access to the child PID, which the runner
|
|
85
|
+
* abstraction deliberately hides. The pre/post-flight pair catches the
|
|
86
|
+
* dominant cases ("daemon was already dead" and "daemon died during
|
|
87
|
+
* push, the runner is now hanging") at very low cost.
|
|
66
88
|
*/
|
|
67
|
-
export declare function adbPush(runner: AdbRunner, serial: string | undefined, remote: string, content: Buffer, opts: AdbFileOpOptions
|
|
89
|
+
export declare function adbPush(runner: AdbRunner, serial: string | undefined, remote: string, content: Buffer, opts: AdbFileOpOptions & {
|
|
90
|
+
maxPushBytes?: number;
|
|
91
|
+
}): Promise<void>;
|
|
68
92
|
/**
|
|
69
93
|
* `ls -laL <path>` over `adb shell` (single-string command, properly
|
|
70
94
|
* quoted via `sh\`...\``). The `-L` flag dereferences symlinks so callers
|
package/dist/util/adb-files.js
CHANGED
|
@@ -41,6 +41,24 @@ import * as path from "node:path";
|
|
|
41
41
|
import { DeviceError } from "@beeos-ai/device-common";
|
|
42
42
|
import { sh } from "./adb-shell.js";
|
|
43
43
|
const DEFAULT_PULL_CAP_BYTES = 64 * 1024 * 1024;
|
|
44
|
+
/**
|
|
45
|
+
* Hard ceiling for `adbPush`. Pushing a 1 GiB buffer through this code
|
|
46
|
+
* path means: hold the buffer in memory, fsync it to a host tmp file,
|
|
47
|
+
* THEN ship it over the file-sync protocol. The two-copy memory
|
|
48
|
+
* pressure plus disk space is almost always a sign the caller is
|
|
49
|
+
* doing something wrong (e.g. trying to install an APK without
|
|
50
|
+
* streaming, or a runaway test). 256 MiB is generous for APK / video /
|
|
51
|
+
* scrcpy-bridge install scenarios while bounded enough to fail loud
|
|
52
|
+
* before OOM.
|
|
53
|
+
*
|
|
54
|
+
* v3 install-link review (P2-3): pre-flight cap + daemon-liveness
|
|
55
|
+
* pre/post-flight checks are the KISS cure for "卡死在 adb push" —
|
|
56
|
+
* `adb push` itself does not support stdin pipe (file-sync protocol
|
|
57
|
+
* needs a host-side path with seek), so a true streaming path requires
|
|
58
|
+
* upstream changes outside this module. We instead make every failure
|
|
59
|
+
* mode fail FAST with an actionable error code.
|
|
60
|
+
*/
|
|
61
|
+
const DEFAULT_PUSH_CAP_BYTES = 256 * 1024 * 1024;
|
|
44
62
|
/**
|
|
45
63
|
* Prepend `["-s", serial]` when a serial is set. Mirrors the private
|
|
46
64
|
* `adbArgs()` helper in the backend so the helpers here can build their
|
|
@@ -84,8 +102,39 @@ export async function adbPull(runner, serial, remote, opts) {
|
|
|
84
102
|
* `adb push <hostTmp> <remote>`. The buffer is written to a temp file
|
|
85
103
|
* first because `adb push` reads from disk; piping into stdin is not
|
|
86
104
|
* supported by the file-sync protocol.
|
|
105
|
+
*
|
|
106
|
+
* v3 install-link review (P2-3) hardening:
|
|
107
|
+
*
|
|
108
|
+
* 1. **Pre-flight daemon probe**: `adb get-state` before the push so
|
|
109
|
+
* a dead adb-server fails the push within ~1.5s with
|
|
110
|
+
* `subtype: daemon_died` instead of waiting for the file-IO
|
|
111
|
+
* timeout to fire (default 60s).
|
|
112
|
+
* 2. **Push-size cap**: refuse buffers above 256 MiB (configurable
|
|
113
|
+
* via `opts.maxPushBytes`). Pushing larger blobs through this
|
|
114
|
+
* path means double memory pressure + a disk fsync round-trip;
|
|
115
|
+
* callers should be using a streaming installer instead.
|
|
116
|
+
* 3. **Post-flight daemon probe** on failure: if the runner threw,
|
|
117
|
+
* re-probe the daemon. A failure here promotes the original
|
|
118
|
+
* generic `adb_failed` to `daemon_died`, which is the actionable
|
|
119
|
+
* class — caller knows to kill-and-restart the adb server rather
|
|
120
|
+
* than retry the push.
|
|
121
|
+
*
|
|
122
|
+
* Note: a TRUE in-flight watchdog (kill the push if the daemon dies
|
|
123
|
+
* mid-transfer) requires access to the child PID, which the runner
|
|
124
|
+
* abstraction deliberately hides. The pre/post-flight pair catches the
|
|
125
|
+
* dominant cases ("daemon was already dead" and "daemon died during
|
|
126
|
+
* push, the runner is now hanging") at very low cost.
|
|
87
127
|
*/
|
|
88
128
|
export async function adbPush(runner, serial, remote, content, opts) {
|
|
129
|
+
const cap = opts.maxPushBytes ?? DEFAULT_PUSH_CAP_BYTES;
|
|
130
|
+
if (content.byteLength > cap) {
|
|
131
|
+
throw new DeviceError(`adb push refused: buffer is ${content.byteLength} bytes, cap is ${cap}. ` +
|
|
132
|
+
`Set opts.maxPushBytes to override, or stream the install via 'adb install' / 'pm install -S' instead.`, { subtype: "adb_failed", retriable: false });
|
|
133
|
+
}
|
|
134
|
+
// Pre-flight daemon probe. ~1.5s. If the daemon is already wedged,
|
|
135
|
+
// fail now with a clear cause instead of letting the runner's full
|
|
136
|
+
// timeout fire.
|
|
137
|
+
await assertAdbDaemonAlive(runner, serial, "before push");
|
|
89
138
|
const tmpdir = opts.tmpdir?.() ?? os.tmpdir();
|
|
90
139
|
const stagingDir = await mkdtemp(path.join(tmpdir, "beeos-adb-push-"));
|
|
91
140
|
const local = path.join(stagingDir, "data.bin");
|
|
@@ -97,6 +146,14 @@ export async function adbPush(runner, serial, remote, content, opts) {
|
|
|
97
146
|
});
|
|
98
147
|
}
|
|
99
148
|
catch (e) {
|
|
149
|
+
// Post-flight probe: if the runner failure correlates with a dead
|
|
150
|
+
// daemon, surface the more actionable error code. The probe itself
|
|
151
|
+
// has its own short timeout so we don't compound failures.
|
|
152
|
+
const daemonDeadAfter = await isAdbDaemonDead(runner, serial);
|
|
153
|
+
if (daemonDeadAfter) {
|
|
154
|
+
throw new DeviceError(`adb push failed: daemon died during transfer of ${remote}. ` +
|
|
155
|
+
`Try 'adb kill-server && adb start-server'.`, { subtype: "daemon_died", retriable: true, cause: e });
|
|
156
|
+
}
|
|
100
157
|
throw wrapPullPushFailure("push", remote, e, opts.timeoutMs);
|
|
101
158
|
}
|
|
102
159
|
finally {
|
|
@@ -104,6 +161,44 @@ export async function adbPush(runner, serial, remote, content, opts) {
|
|
|
104
161
|
await rm(stagingDir, { recursive: true, force: true }).catch(() => undefined);
|
|
105
162
|
}
|
|
106
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Throw `DeviceError(daemon_died)` when `adb get-state` either errors
|
|
166
|
+
* or returns a non-`device` state within 1.5s. Used as a pre-flight
|
|
167
|
+
* before a long-running file IO call so we surface a wedged daemon
|
|
168
|
+
* before the caller's timeout has to fire.
|
|
169
|
+
*/
|
|
170
|
+
async function assertAdbDaemonAlive(runner, serial, phase) {
|
|
171
|
+
if (await isAdbDaemonDead(runner, serial)) {
|
|
172
|
+
throw new DeviceError(`adb daemon unreachable (${phase}). Try 'adb kill-server && adb start-server'.`, { subtype: "daemon_died", retriable: true });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Returns true when `adb get-state` for the (optional) serial does
|
|
177
|
+
* not respond within 1.5s, throws, or returns a non-`device` state.
|
|
178
|
+
*
|
|
179
|
+
* Best-effort: any unexpected runner failure also counts as "dead"
|
|
180
|
+
* since the caller is about to make a longer call that would also
|
|
181
|
+
* fail, and surfacing the kinder daemon_died error is more useful
|
|
182
|
+
* than waiting for the longer call's generic adb_failed.
|
|
183
|
+
*/
|
|
184
|
+
async function isAdbDaemonDead(runner, serial) {
|
|
185
|
+
try {
|
|
186
|
+
const result = await runner("adb", withSerial(serial, ["get-state"]), {
|
|
187
|
+
encoding: "utf8",
|
|
188
|
+
timeoutMs: 1_500,
|
|
189
|
+
});
|
|
190
|
+
const state = typeof result.stdout === "string"
|
|
191
|
+
? result.stdout.trim()
|
|
192
|
+
: result.stdout.toString("utf8").trim();
|
|
193
|
+
// The healthy reply is the literal token "device". Any other
|
|
194
|
+
// value (`offline`, `unauthorized`, empty) means the daemon is
|
|
195
|
+
// unable to drive a transfer right now.
|
|
196
|
+
return state !== "device";
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
107
202
|
/* ----------------------------------------------------------------------- */
|
|
108
203
|
/* List directory */
|
|
109
204
|
/* ----------------------------------------------------------------------- */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-files.js","sourceRoot":"","sources":["../../src/util/adb-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAepC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAA0B,EAC1B,IAAuB;IAEvB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAiB,EACjB,MAA0B,EAC1B,MAAc,EACd,IAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;YAC/D,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,sBAAsB;SAC9D,CAAC,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;YAAS,CAAC;QACT,kEAAkE;QAClE,8BAA8B;QAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"adb-files.js","sourceRoot":"","sources":["../../src/util/adb-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAepC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAA0B,EAC1B,IAAuB;IAEvB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAiB,EACjB,MAA0B,EAC1B,MAAc,EACd,IAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;YAC/D,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,sBAAsB;SAC9D,CAAC,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;YAAS,CAAC;QACT,kEAAkE;QAClE,8BAA8B;QAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAiB,EACjB,MAA0B,EAC1B,MAAc,EACd,OAAe,EACf,IAAkD;IAElD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC;IACxD,IAAI,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QAC7B,MAAM,IAAI,WAAW,CACnB,+BAA+B,OAAO,CAAC,UAAU,kBAAkB,GAAG,IAAI;YACxE,uGAAuG,EACzG,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,mEAAmE;IACnE,gBAAgB;IAChB,MAAM,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;YAC/D,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,kEAAkE;QAClE,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,WAAW,CACnB,mDAAmD,MAAM,IAAI;gBAC3D,4CAA4C,EAC9C,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAAiB,EACjB,MAA0B,EAC1B,KAAoC;IAEpC,IAAI,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,WAAW,CACnB,2BAA2B,KAAK,+CAA+C,EAC/E,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAC5C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAiB,EACjB,MAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;YACpE,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,6DAA6D;QAC7D,+DAA+D;QAC/D,wCAAwC;QACxC,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,MAA0B,EAC1B,OAAe,EACf,IAAsB;IAEtB,MAAM,GAAG,GAAG,EAAE,CAAA,WAAW,OAAO,EAAE,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE;QACzE,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3E,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QACrD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAC5B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAE7E;;;;;;;;;;;;;;GAcG;AACH,SAAS,mBAAmB,CAC1B,IAAqB,EACrB,MAAc,EACd,KAAc,EACd,SAAiB;IAEjB,MAAM,GAAG,GAAG,KAMX,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,IAAI,WAAW,CACpB,OAAO,IAAI,oBAAoB,SAAS,IAAI,EAC5C,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CACxD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,WAAW,CACpB,sBAAsB,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,EACjD,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,sEAAsE;IACtE,qBAAqB;IACrB,IACE,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAC7D,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,EAAE;YAC1D,OAAO,EAAE,mBAAmB;YAC5B,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,MAAM,GACV,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC5B,CAAC,CAAC,GAAG,CAAC,MAAM;QACZ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7B,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,IAAI,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;IACpC,MAAM,SAAS,GACb,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,WAAW,CACpB,OAAO,IAAI,YAAY,MAAM,6BAA6B,EAC1D,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC;IACzD,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,YAAY,OAAO,EAAE,EAAE;QACvD,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BCP-47-ish locale-tag validation.
|
|
3
|
+
*
|
|
4
|
+
* mobile-mcp parity (round 3): mirrors `validateLocale` from
|
|
5
|
+
* `mobile-mcp/src/utils.ts` — `[a-zA-Z0-9,\- ]` only. The character class is
|
|
6
|
+
* deliberately permissive (BCP-47 allows tags like `zh-Hant-TW`, lists like
|
|
7
|
+
* `fr-FR,en-US`, and Android's `cmd locale set-app-locales` accepts space-
|
|
8
|
+
* delimited preference lists), but tight enough to keep shell metachars
|
|
9
|
+
* (`$`, `` ` ``, `;`, `|`) and path separators (`/`, `\`) out.
|
|
10
|
+
*
|
|
11
|
+
* Used at the MCP tool boundary (`launch_app({ locale })`) so a prompt-
|
|
12
|
+
* injected `locale: "$(rm -rf /)"` is rejected before reaching `adb shell`
|
|
13
|
+
* — `sh\`...\`` template literal in `android-adb.ts` already escapes the
|
|
14
|
+
* value, so this is defence-in-depth (and a faster, clearer error).
|
|
15
|
+
*/
|
|
16
|
+
export declare function assertValidLocale(s: string): string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BCP-47-ish locale-tag validation.
|
|
3
|
+
*
|
|
4
|
+
* mobile-mcp parity (round 3): mirrors `validateLocale` from
|
|
5
|
+
* `mobile-mcp/src/utils.ts` — `[a-zA-Z0-9,\- ]` only. The character class is
|
|
6
|
+
* deliberately permissive (BCP-47 allows tags like `zh-Hant-TW`, lists like
|
|
7
|
+
* `fr-FR,en-US`, and Android's `cmd locale set-app-locales` accepts space-
|
|
8
|
+
* delimited preference lists), but tight enough to keep shell metachars
|
|
9
|
+
* (`$`, `` ` ``, `;`, `|`) and path separators (`/`, `\`) out.
|
|
10
|
+
*
|
|
11
|
+
* Used at the MCP tool boundary (`launch_app({ locale })`) so a prompt-
|
|
12
|
+
* injected `locale: "$(rm -rf /)"` is rejected before reaching `adb shell`
|
|
13
|
+
* — `sh\`...\`` template literal in `android-adb.ts` already escapes the
|
|
14
|
+
* value, so this is defence-in-depth (and a faster, clearer error).
|
|
15
|
+
*/
|
|
16
|
+
import { DeviceError } from "@beeos-ai/device-common";
|
|
17
|
+
const LOCALE_RE = /^[a-zA-Z0-9,\- ]+$/;
|
|
18
|
+
const MAX_LOCALE_LENGTH = 256;
|
|
19
|
+
export function assertValidLocale(s) {
|
|
20
|
+
if (typeof s !== "string" || s.length === 0) {
|
|
21
|
+
throw new DeviceError("locale must be a non-empty string", { subtype: "invalid_args", retriable: false });
|
|
22
|
+
}
|
|
23
|
+
if (s.length > MAX_LOCALE_LENGTH) {
|
|
24
|
+
throw new DeviceError(`locale '${s.slice(0, 32)}…' exceeds ${MAX_LOCALE_LENGTH} chars`, { subtype: "invalid_args", retriable: false });
|
|
25
|
+
}
|
|
26
|
+
if (!LOCALE_RE.test(s)) {
|
|
27
|
+
throw new DeviceError(`locale '${s}' contains invalid characters (allowed: a-z A-Z 0-9 , - space)`, { subtype: "invalid_args", retriable: false });
|
|
28
|
+
}
|
|
29
|
+
return s;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/util/locale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,SAAS,GAAG,oBAAoB,CAAC;AACvC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,UAAU,iBAAiB,CAAC,CAAS;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CACnB,mCAAmC,EACnC,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAC9C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,WAAW,CACnB,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,iBAAiB,QAAQ,EAChE,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAC9C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,WAAW,CACnB,WAAW,CAAC,gEAAgE,EAC5E,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAC9C,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stderr-only structured logger used by both transports.
|
|
3
|
+
*
|
|
4
|
+
* Stdio mode requires that the `stdout` channel carries ONLY MCP JSON-RPC
|
|
5
|
+
* frames — anything else corrupts the protocol. The default pino logger
|
|
6
|
+
* also writes to stdout. We pin it to stderr explicitly here and re-use
|
|
7
|
+
* the same instance from the HTTP transport so both modes log
|
|
8
|
+
* consistently.
|
|
9
|
+
*
|
|
10
|
+
* Consumers can plug in any pino-shaped logger via `BuildAppOptions.logger`
|
|
11
|
+
* / `RunStdioOptions.logger`. The bundled instance is intentionally
|
|
12
|
+
* minimal — no transports, no formatting, no rotation. Operators who
|
|
13
|
+
* want more should bring their own pino instance with the destination of
|
|
14
|
+
* their choice (also pinned to stderr — never stdout).
|
|
15
|
+
*
|
|
16
|
+
* Why not `console.error`? `console.*` ends up in different streams on
|
|
17
|
+
* different runtimes (especially when wrapped by libraries like jest /
|
|
18
|
+
* vitest) and the pino instance avoids that surprise — it always goes
|
|
19
|
+
* to fd 2 directly.
|
|
20
|
+
*/
|
|
21
|
+
export interface Logger {
|
|
22
|
+
info?: (obj: unknown, msg?: string) => void;
|
|
23
|
+
warn?: (obj: unknown, msg?: string) => void;
|
|
24
|
+
error?: (obj: unknown, msg?: string) => void;
|
|
25
|
+
debug?: (obj: unknown, msg?: string) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare const stderrLogger: Logger;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stderr-only structured logger used by both transports.
|
|
3
|
+
*
|
|
4
|
+
* Stdio mode requires that the `stdout` channel carries ONLY MCP JSON-RPC
|
|
5
|
+
* frames — anything else corrupts the protocol. The default pino logger
|
|
6
|
+
* also writes to stdout. We pin it to stderr explicitly here and re-use
|
|
7
|
+
* the same instance from the HTTP transport so both modes log
|
|
8
|
+
* consistently.
|
|
9
|
+
*
|
|
10
|
+
* Consumers can plug in any pino-shaped logger via `BuildAppOptions.logger`
|
|
11
|
+
* / `RunStdioOptions.logger`. The bundled instance is intentionally
|
|
12
|
+
* minimal — no transports, no formatting, no rotation. Operators who
|
|
13
|
+
* want more should bring their own pino instance with the destination of
|
|
14
|
+
* their choice (also pinned to stderr — never stdout).
|
|
15
|
+
*
|
|
16
|
+
* Why not `console.error`? `console.*` ends up in different streams on
|
|
17
|
+
* different runtimes (especially when wrapped by libraries like jest /
|
|
18
|
+
* vitest) and the pino instance avoids that surprise — it always goes
|
|
19
|
+
* to fd 2 directly.
|
|
20
|
+
*/
|
|
21
|
+
import pino from "pino";
|
|
22
|
+
export const stderrLogger = pino({
|
|
23
|
+
level: process.env.LOG_LEVEL ?? "info",
|
|
24
|
+
base: { component: "device-mcp-server" },
|
|
25
|
+
timestamp: pino.stdTimeFunctions.isoTime,
|
|
26
|
+
}, pino.destination(2));
|
|
27
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,CAAC,MAAM,YAAY,GAAW,IAAI,CACtC;IACE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,IAAI,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE;IACxC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;CACzC,EACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACpB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output-path sandbox for tools that write to the host filesystem.
|
|
3
|
+
*
|
|
4
|
+
* `screenshot_to_file({ path })` and `screen_record_stop({ path })` accept a
|
|
5
|
+
* caller-supplied destination path and previously fed it directly to
|
|
6
|
+
* `writeFile` / `adb pull <local>`. A prompt-injected LLM could therefore
|
|
7
|
+
* write `/etc/hosts` or `~/.ssh/authorized_keys` (subject only to OS file
|
|
8
|
+
* permissions), which is not the security posture we want for a tool
|
|
9
|
+
* loaded into Cursor / Claude Desktop / production agents.
|
|
10
|
+
*
|
|
11
|
+
* The resolution mirrors mobile-mcp's `validateOutputPath` (see
|
|
12
|
+
* `mobile-mcp/src/utils.ts` L18-L87): allow the caller-supplied path only
|
|
13
|
+
* if it resolves under one of the trusted roots:
|
|
14
|
+
*
|
|
15
|
+
* 1. `process.cwd()` — the operator's working directory at server start
|
|
16
|
+
* 2. `os.tmpdir()` — the system temp directory (and its `/private/tmp`
|
|
17
|
+
* alias on macOS, where `os.tmpdir()` reports `/var/folders/.../T/`
|
|
18
|
+
* but `/tmp` is the symlinked entry point most users type)
|
|
19
|
+
* 3. Each comma- or colon-separated entry of `BEEOS_DEVICE_OUTPUT_DIRS`
|
|
20
|
+
* (operator opt-in escape hatch for mounted volumes / shared dirs)
|
|
21
|
+
*
|
|
22
|
+
* Anything outside the trusted set throws a `DeviceError("invalid_args")`
|
|
23
|
+
* before the destructive operation runs.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Returns the absolute, resolved form of `target` if it sits under one of
|
|
27
|
+
* the trusted roots. Otherwise throws `DeviceError("invalid_args")` —
|
|
28
|
+
* never returns a path that escaped the sandbox.
|
|
29
|
+
*
|
|
30
|
+
* Symlinks are NOT followed: we only canonicalise via `path.resolve` so a
|
|
31
|
+
* legitimate symlink under cwd that points outside is still considered
|
|
32
|
+
* inside (the kernel will enforce real permissions at write time).
|
|
33
|
+
* Following symlinks here would surprise operators who deliberately link
|
|
34
|
+
* a writable cwd entry to an external mount.
|
|
35
|
+
*/
|
|
36
|
+
export declare function assertSafeOutputPath(target: string, opts?: {
|
|
37
|
+
extraRoots?: string;
|
|
38
|
+
}): string;
|
|
39
|
+
/**
|
|
40
|
+
* Same as {@link assertSafeOutputPath}, but ALSO restricts the file
|
|
41
|
+
* extension to a fixed allow-list. Used by tools that need both sandbox
|
|
42
|
+
* and codec consistency:
|
|
43
|
+
*
|
|
44
|
+
* - `screenshot_to_file({ path })` — `.png` / `.jpg` / `.jpeg`
|
|
45
|
+
* - `screen_record_start({ output })` — `.mp4`
|
|
46
|
+
* - `screen_record_stop({ path })` — `.mp4`
|
|
47
|
+
*
|
|
48
|
+
* mobile-mcp parity (round 3): mirrors `validateFileExtension` from
|
|
49
|
+
* `mobile-mcp/src/utils.ts` — without it, a prompt-injected agent could
|
|
50
|
+
* write a screenshot to `~/Downloads/cute.png.exe` (cwd-relative) and
|
|
51
|
+
* have the OS treat it as an executable on platforms that key on file
|
|
52
|
+
* extension. We do the extension check AFTER the path is sandboxed, so
|
|
53
|
+
* the sandbox failure mode (clearer) still wins on outright bad paths.
|
|
54
|
+
*
|
|
55
|
+
* `allowedExts` should be lowercase and dot-prefixed (`[".png", ".jpg"]`).
|
|
56
|
+
* Comparison is case-insensitive.
|
|
57
|
+
*/
|
|
58
|
+
export declare function assertSafeOutputPathWithExt(target: string, allowedExts: readonly string[], opts?: {
|
|
59
|
+
extraRoots?: string;
|
|
60
|
+
}): string;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output-path sandbox for tools that write to the host filesystem.
|
|
3
|
+
*
|
|
4
|
+
* `screenshot_to_file({ path })` and `screen_record_stop({ path })` accept a
|
|
5
|
+
* caller-supplied destination path and previously fed it directly to
|
|
6
|
+
* `writeFile` / `adb pull <local>`. A prompt-injected LLM could therefore
|
|
7
|
+
* write `/etc/hosts` or `~/.ssh/authorized_keys` (subject only to OS file
|
|
8
|
+
* permissions), which is not the security posture we want for a tool
|
|
9
|
+
* loaded into Cursor / Claude Desktop / production agents.
|
|
10
|
+
*
|
|
11
|
+
* The resolution mirrors mobile-mcp's `validateOutputPath` (see
|
|
12
|
+
* `mobile-mcp/src/utils.ts` L18-L87): allow the caller-supplied path only
|
|
13
|
+
* if it resolves under one of the trusted roots:
|
|
14
|
+
*
|
|
15
|
+
* 1. `process.cwd()` — the operator's working directory at server start
|
|
16
|
+
* 2. `os.tmpdir()` — the system temp directory (and its `/private/tmp`
|
|
17
|
+
* alias on macOS, where `os.tmpdir()` reports `/var/folders/.../T/`
|
|
18
|
+
* but `/tmp` is the symlinked entry point most users type)
|
|
19
|
+
* 3. Each comma- or colon-separated entry of `BEEOS_DEVICE_OUTPUT_DIRS`
|
|
20
|
+
* (operator opt-in escape hatch for mounted volumes / shared dirs)
|
|
21
|
+
*
|
|
22
|
+
* Anything outside the trusted set throws a `DeviceError("invalid_args")`
|
|
23
|
+
* before the destructive operation runs.
|
|
24
|
+
*/
|
|
25
|
+
import * as path from "node:path";
|
|
26
|
+
import * as os from "node:os";
|
|
27
|
+
import { DeviceError } from "@beeos-ai/device-common";
|
|
28
|
+
/** Resolve and freeze the trusted-roots list once per call. */
|
|
29
|
+
function trustedRoots(extraRootsRaw) {
|
|
30
|
+
// process.cwd() may shift across calls (rare, but tests exercise it),
|
|
31
|
+
// so we recompute on every invocation — micro-perf is negligible.
|
|
32
|
+
const cwd = path.resolve(process.cwd());
|
|
33
|
+
const tmp = path.resolve(os.tmpdir());
|
|
34
|
+
const roots = new Set([cwd, tmp]);
|
|
35
|
+
// macOS `os.tmpdir()` resolves to `/var/folders/.../T/` but the canonical
|
|
36
|
+
// user-visible path is `/private/tmp` (and the bare `/tmp` symlink). Add
|
|
37
|
+
// both aliases explicitly so `--output-dir /tmp/foo` callers don't get
|
|
38
|
+
// a misleading "outside sandbox" error on macOS.
|
|
39
|
+
if (process.platform === "darwin") {
|
|
40
|
+
roots.add("/private/tmp");
|
|
41
|
+
roots.add("/tmp");
|
|
42
|
+
}
|
|
43
|
+
// Operator opt-in extras. Comma OR colon separated to match the
|
|
44
|
+
// convention used elsewhere in BeeOS (`PATH`-like colons on POSIX,
|
|
45
|
+
// commas in env-style lists).
|
|
46
|
+
const raw = extraRootsRaw ?? process.env.BEEOS_DEVICE_OUTPUT_DIRS ?? "";
|
|
47
|
+
for (const entry of raw.split(/[,:]/)) {
|
|
48
|
+
const trimmed = entry.trim();
|
|
49
|
+
if (trimmed.length > 0)
|
|
50
|
+
roots.add(path.resolve(trimmed));
|
|
51
|
+
}
|
|
52
|
+
return [...roots];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns the absolute, resolved form of `target` if it sits under one of
|
|
56
|
+
* the trusted roots. Otherwise throws `DeviceError("invalid_args")` —
|
|
57
|
+
* never returns a path that escaped the sandbox.
|
|
58
|
+
*
|
|
59
|
+
* Symlinks are NOT followed: we only canonicalise via `path.resolve` so a
|
|
60
|
+
* legitimate symlink under cwd that points outside is still considered
|
|
61
|
+
* inside (the kernel will enforce real permissions at write time).
|
|
62
|
+
* Following symlinks here would surprise operators who deliberately link
|
|
63
|
+
* a writable cwd entry to an external mount.
|
|
64
|
+
*/
|
|
65
|
+
export function assertSafeOutputPath(target, opts = {}) {
|
|
66
|
+
if (typeof target !== "string" || target.length === 0) {
|
|
67
|
+
throw new DeviceError("output path must be a non-empty string", {
|
|
68
|
+
subtype: "invalid_args",
|
|
69
|
+
retriable: false,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const resolved = path.resolve(target);
|
|
73
|
+
const roots = trustedRoots(opts.extraRoots);
|
|
74
|
+
for (const root of roots) {
|
|
75
|
+
if (isUnder(root, resolved))
|
|
76
|
+
return resolved;
|
|
77
|
+
}
|
|
78
|
+
throw new DeviceError(`output path '${target}' is outside the sandbox (allowed roots: ${roots.join(", ")}). Set BEEOS_DEVICE_OUTPUT_DIRS to widen the allow-list.`, { subtype: "invalid_args", retriable: false });
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Same as {@link assertSafeOutputPath}, but ALSO restricts the file
|
|
82
|
+
* extension to a fixed allow-list. Used by tools that need both sandbox
|
|
83
|
+
* and codec consistency:
|
|
84
|
+
*
|
|
85
|
+
* - `screenshot_to_file({ path })` — `.png` / `.jpg` / `.jpeg`
|
|
86
|
+
* - `screen_record_start({ output })` — `.mp4`
|
|
87
|
+
* - `screen_record_stop({ path })` — `.mp4`
|
|
88
|
+
*
|
|
89
|
+
* mobile-mcp parity (round 3): mirrors `validateFileExtension` from
|
|
90
|
+
* `mobile-mcp/src/utils.ts` — without it, a prompt-injected agent could
|
|
91
|
+
* write a screenshot to `~/Downloads/cute.png.exe` (cwd-relative) and
|
|
92
|
+
* have the OS treat it as an executable on platforms that key on file
|
|
93
|
+
* extension. We do the extension check AFTER the path is sandboxed, so
|
|
94
|
+
* the sandbox failure mode (clearer) still wins on outright bad paths.
|
|
95
|
+
*
|
|
96
|
+
* `allowedExts` should be lowercase and dot-prefixed (`[".png", ".jpg"]`).
|
|
97
|
+
* Comparison is case-insensitive.
|
|
98
|
+
*/
|
|
99
|
+
export function assertSafeOutputPathWithExt(target, allowedExts, opts = {}) {
|
|
100
|
+
const safe = assertSafeOutputPath(target, opts);
|
|
101
|
+
const ext = path.extname(safe).toLowerCase();
|
|
102
|
+
if (!allowedExts.includes(ext)) {
|
|
103
|
+
throw new DeviceError(`output path '${target}' has unsupported extension '${ext || "(none)"}' (allowed: ${allowedExts.join(", ")})`, { subtype: "invalid_args", retriable: false });
|
|
104
|
+
}
|
|
105
|
+
return safe;
|
|
106
|
+
}
|
|
107
|
+
/** True iff `child` is `root` or a descendant. Both inputs must be resolved. */
|
|
108
|
+
function isUnder(root, child) {
|
|
109
|
+
if (child === root)
|
|
110
|
+
return true;
|
|
111
|
+
const rel = path.relative(root, child);
|
|
112
|
+
// `path.relative` returns "" for identity, "..[/...]" when `child`
|
|
113
|
+
// escapes upward, or an absolute path on Windows when crossing drive
|
|
114
|
+
// letters. All three escape cases are filtered out below.
|
|
115
|
+
if (rel === "" || rel === ".")
|
|
116
|
+
return true;
|
|
117
|
+
if (rel.startsWith(".."))
|
|
118
|
+
return false;
|
|
119
|
+
if (path.isAbsolute(rel))
|
|
120
|
+
return false;
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=output-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-path.js","sourceRoot":"","sources":["../../src/util/output-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Android package-name validation.
|
|
3
|
+
*
|
|
4
|
+
* mobile-mcp parity (round 3): mirrors `validatePackageName` from
|
|
5
|
+
* `mobile-mcp/src/utils.ts` — `[a-zA-Z0-9._]` only, with no leading dot
|
|
6
|
+
* relaxation since Android's own package-name grammar (RFC-1034 segments
|
|
7
|
+
* separated by `.`) maps cleanly onto this character class.
|
|
8
|
+
*
|
|
9
|
+
* Used at the MCP tool boundary (`terminate_app`, `uninstall_app`) to fail
|
|
10
|
+
* a malformed input EARLY — before it travels through the runner, gets
|
|
11
|
+
* shell-escaped by `sh\`...\``, and produces a confusing "package not
|
|
12
|
+
* found" error from `pm uninstall`. We deliberately do NOT call this in
|
|
13
|
+
* `launch_app` because that handler accepts user-friendly display names
|
|
14
|
+
* (e.g. "WeChat" -> `com.tencent.mm`) which are mapped to package ids
|
|
15
|
+
* inside the backend.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Throw `DeviceError({ subtype: "invalid_args" })` if `name` doesn't match
|
|
19
|
+
* the Android package-name grammar. Returns `name` unchanged on success so
|
|
20
|
+
* callers can write `assertValidPackageName(args.pkg)` inline.
|
|
21
|
+
*
|
|
22
|
+
* Empty / non-string / over-length inputs all reject. Defaults inherit
|
|
23
|
+
* `userActionable=true` from the `invalid_args` subtype so the LLM sees a
|
|
24
|
+
* plain-text actionable response instead of an `isError` protocol failure.
|
|
25
|
+
*/
|
|
26
|
+
export declare function assertValidPackageName(name: string): string;
|