vibeview 0.10.1 → 0.12.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/{chunk-NA3JOV5Z.js → chunk-NJU4AKHN.js} +1045 -147
- package/dist/{chunk-YD2X6TQV.js → chunk-OHRTLUBD.js} +154 -12
- package/dist/cli.js +294 -24
- package/dist/{server-B2PDQJLR.js → server-LZRNKGVA.js} +23 -12
- package/dist/{upload-app-GAZVQZYR.js → upload-app-G5SEYBTU.js} +1 -1
- package/package.json +2 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
AGENT_COMMANDS,
|
|
4
4
|
PLATFORM_DEVICE,
|
|
5
|
+
PLATFORM_NEEDS_METRO,
|
|
5
6
|
buildToolCall,
|
|
6
7
|
checkMetro,
|
|
7
8
|
decodeScreenshotResult,
|
|
@@ -10,11 +11,11 @@ import {
|
|
|
10
11
|
readDevState,
|
|
11
12
|
renderEnvelope,
|
|
12
13
|
startDevSession
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-NJU4AKHN.js";
|
|
14
15
|
import {
|
|
15
16
|
ApiClient,
|
|
16
17
|
resolveAuth
|
|
17
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-OHRTLUBD.js";
|
|
18
19
|
|
|
19
20
|
// src/mcp/server.ts
|
|
20
21
|
import { writeFileSync } from "fs";
|
|
@@ -25,7 +26,10 @@ var SESSION_ID_PROPERTY = {
|
|
|
25
26
|
type: "string",
|
|
26
27
|
description: "Session ID to target. Optional: falls back to the MCP-server-held dev_start session, then this project's `vibeview dev --detach` state, if either is available."
|
|
27
28
|
};
|
|
28
|
-
var
|
|
29
|
+
var MCP_DEV_PLATFORMS = ["ios", "android", "tvos", "androidtv"];
|
|
30
|
+
function isMcpDevPlatform(p) {
|
|
31
|
+
return isDevPlatform(p) && MCP_DEV_PLATFORMS.includes(p);
|
|
32
|
+
}
|
|
29
33
|
function paramToProperty(param) {
|
|
30
34
|
return { type: param.type, description: param.description };
|
|
31
35
|
}
|
|
@@ -62,7 +66,7 @@ var DEV_START_DEF = {
|
|
|
62
66
|
platform: {
|
|
63
67
|
type: "string",
|
|
64
68
|
description: "Platform to run on.",
|
|
65
|
-
enum: [...
|
|
69
|
+
enum: [...MCP_DEV_PLATFORMS]
|
|
66
70
|
},
|
|
67
71
|
app: {
|
|
68
72
|
type: "string",
|
|
@@ -194,9 +198,14 @@ function optsFor(cmd, args) {
|
|
|
194
198
|
}
|
|
195
199
|
async function handleDevStart(args, deps) {
|
|
196
200
|
const platform = args.platform;
|
|
197
|
-
if (
|
|
201
|
+
if (platform === "roku") {
|
|
202
|
+
return errorResult(
|
|
203
|
+
"dev_start does not support roku \u2014 the reload loop needs a foreground terminal; run `vibeview dev --platform roku` instead"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
if (!isMcpDevPlatform(platform)) {
|
|
198
207
|
return errorResult(
|
|
199
|
-
`dev_start: platform must be one of ${
|
|
208
|
+
`dev_start: platform must be one of ${MCP_DEV_PLATFORMS.join(", ")}, got "${String(platform)}"`
|
|
200
209
|
);
|
|
201
210
|
}
|
|
202
211
|
try {
|
|
@@ -230,7 +239,7 @@ async function handleUploadApp(args, deps) {
|
|
|
230
239
|
}
|
|
231
240
|
const name = typeof args.name === "string" && args.name ? args.name : void 0;
|
|
232
241
|
const upload = deps.uploadApp ?? (async (f, n) => {
|
|
233
|
-
const { uploadAppBuild } = await import("./upload-app-
|
|
242
|
+
const { uploadAppBuild } = await import("./upload-app-G5SEYBTU.js");
|
|
234
243
|
const { result: result2 } = await uploadAppBuild(f, { ...deps.auth, name: n });
|
|
235
244
|
return result2;
|
|
236
245
|
});
|
|
@@ -280,11 +289,13 @@ function createDevSessionController(auth, webUrl) {
|
|
|
280
289
|
);
|
|
281
290
|
}
|
|
282
291
|
const metroPort = cfg.metroPort ?? devConfig?.metroPort ?? 8081;
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
292
|
+
if (PLATFORM_NEEDS_METRO[cfg.platform]) {
|
|
293
|
+
const metro = await checkMetro(metroPort);
|
|
294
|
+
if (metro === "down") {
|
|
295
|
+
throw new Error(
|
|
296
|
+
`Metro isn't running on localhost:${metroPort} \u2014 start it in the project first (yarn start), or pass metro_port if Metro uses another port`
|
|
297
|
+
);
|
|
298
|
+
}
|
|
288
299
|
}
|
|
289
300
|
const isTv = PLATFORM_DEVICE[cfg.platform].tv;
|
|
290
301
|
handle = await startDevSession({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibeview",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "VibeView CLI -- run mobile tests from CI/CD pipelines",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
30
30
|
"chalk": "^5.0.0",
|
|
31
31
|
"commander": "^14.0.0",
|
|
32
|
+
"ignore": "^7.0.0",
|
|
32
33
|
"open": "^11.0.0",
|
|
33
34
|
"ora": "^9.0.0",
|
|
34
35
|
"ws": "^8.18.0",
|