tapline-host 1.2.0 → 1.3.1
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/audit.d.ts +10 -0
- package/dist/audit.js +19 -1
- package/dist/audit.js.map +1 -1
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.js +42 -1
- package/dist/config.js.map +1 -1
- package/dist/crash.d.ts +24 -0
- package/dist/crash.js +91 -0
- package/dist/crash.js.map +1 -0
- package/dist/doctor.d.ts +11 -1
- package/dist/doctor.js +74 -2
- package/dist/doctor.js.map +1 -1
- package/dist/format.d.ts +20 -1
- package/dist/format.js +55 -5
- package/dist/format.js.map +1 -1
- package/dist/mcp.js +101 -55
- package/dist/mcp.js.map +1 -1
- package/dist/perf.d.ts +42 -0
- package/dist/perf.js +95 -0
- package/dist/perf.js.map +1 -0
- package/dist/protocol.d.ts +13 -1
- package/dist/protocol.js +11 -0
- package/dist/protocol.js.map +1 -1
- package/dist/run.d.ts +7 -1
- package/dist/run.js +17 -5
- package/dist/run.js.map +1 -1
- package/dist/script.d.ts +6 -0
- package/dist/script.js +35 -3
- package/dist/script.js.map +1 -1
- package/dist/server.d.ts +64 -0
- package/dist/server.js +145 -5
- package/dist/server.js.map +1 -1
- package/dist/tool-text-data.d.ts +3 -1
- package/dist/tool-text-data.js +3 -1
- package/dist/tool-text-data.js.map +1 -1
- package/dist/tools.d.ts +83 -0
- package/dist/tools.js +456 -36
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
- package/skills/tapline/SKILL.md +3 -2
package/dist/perf.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* AGENT-TOOLS §15.3 `performance`, Tapline's answer: the app's numbers (`perfStop`) in the shared shape, and the
|
|
4
|
+
* limits a `performance` step may carry in `expect.under`.
|
|
5
|
+
*/
|
|
6
|
+
/** What the app's `perfStop` answers. */
|
|
7
|
+
export declare const perfResultSchema: z.ZodObject<{
|
|
8
|
+
seconds: z.ZodNumber;
|
|
9
|
+
frames: z.ZodNumber;
|
|
10
|
+
fps: z.ZodNumber;
|
|
11
|
+
fpsLowest: z.ZodNumber;
|
|
12
|
+
drops: z.ZodNumber;
|
|
13
|
+
busyMs: z.ZodNumber;
|
|
14
|
+
heapMb: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
heapPeakMb: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
renders: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
ms: z.ZodNumber;
|
|
19
|
+
count: z.ZodNumber;
|
|
20
|
+
}, z.core.$strip>>>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type PerfResult = z.infer<typeof perfResultSchema>;
|
|
23
|
+
/** One finished measurement: the app's numbers, and for `launch` how long the reload took. */
|
|
24
|
+
export interface PerfMeasure {
|
|
25
|
+
result: PerfResult;
|
|
26
|
+
/** Seconds from the reload request to the first settled screen (launch only). */
|
|
27
|
+
launchS?: number;
|
|
28
|
+
}
|
|
29
|
+
/** The answer's lines after the first: the numbers, the slowest renders (development builds), what wasn't measured. */
|
|
30
|
+
export declare function formatPerfLines(r: PerfResult): string[];
|
|
31
|
+
/** The first line of the answer. `tap` names the tap the agent asked for, when there was one. */
|
|
32
|
+
export declare function perfFirstLine(m: PerfMeasure, tap?: string): string;
|
|
33
|
+
/** Whether `under` is something a step may carry: the keys it names that aren't limits, else null. */
|
|
34
|
+
export declare function badUnderKeys(under: Record<string, number>): string[];
|
|
35
|
+
/**
|
|
36
|
+
* Checks a measurement against `under` (§15.3): `fps_min` against the lowest sample, the others are maximums.
|
|
37
|
+
* `missed` lists every limit that wasn't kept; `notes` the limits that couldn't be checked (no `Note:` prefix).
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkUnder(under: Record<string, number>, m: PerfMeasure): {
|
|
40
|
+
missed: string[];
|
|
41
|
+
notes: string[];
|
|
42
|
+
};
|
package/dist/perf.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { UNDER_KEYS, UNDER_NOT_MEASURED } from "./run.js";
|
|
3
|
+
/**
|
|
4
|
+
* AGENT-TOOLS §15.3 `performance`, Tapline's answer: the app's numbers (`perfStop`) in the shared shape, and the
|
|
5
|
+
* limits a `performance` step may carry in `expect.under`.
|
|
6
|
+
*/
|
|
7
|
+
/** What the app's `perfStop` answers. */
|
|
8
|
+
export const perfResultSchema = z.object({
|
|
9
|
+
seconds: z.number(),
|
|
10
|
+
frames: z.number(),
|
|
11
|
+
fps: z.number(),
|
|
12
|
+
fpsLowest: z.number(),
|
|
13
|
+
drops: z.number(),
|
|
14
|
+
busyMs: z.number(),
|
|
15
|
+
heapMb: z.number().optional(),
|
|
16
|
+
heapPeakMb: z.number().optional(),
|
|
17
|
+
renders: z.array(z.object({ name: z.string(), ms: z.number(), count: z.number() })).optional(),
|
|
18
|
+
});
|
|
19
|
+
/** The answer's lines after the first: the numbers, the slowest renders (development builds), what wasn't measured. */
|
|
20
|
+
export function formatPerfLines(r) {
|
|
21
|
+
const parts = [];
|
|
22
|
+
if (r.heapMb !== undefined) {
|
|
23
|
+
parts.push(`JS heap ${Math.round(r.heapMb)} MB${r.heapPeakMb !== undefined ? ` (peak ${Math.round(r.heapPeakMb)})` : ""}.`);
|
|
24
|
+
}
|
|
25
|
+
parts.push(`JS frames ${Math.round(r.fps)} fps (lowest ${Math.round(r.fpsLowest)}); ${r.drops} drop${r.drops === 1 ? "" : "s"} over 50 ms; JS thread busy at most ${Math.round(r.busyMs)} ms.`);
|
|
26
|
+
const lines = [parts.join(" ")];
|
|
27
|
+
if (r.renders !== undefined) {
|
|
28
|
+
lines.push(r.renders.length === 0
|
|
29
|
+
? "Slowest renders: none over 1 ms."
|
|
30
|
+
: `Slowest renders: ${r.renders.map((c) => `${c.name} ${Math.round(c.ms)} ms${c.count > 1 ? ` (${c.count} times)` : ""}`).join(", ")}.`);
|
|
31
|
+
}
|
|
32
|
+
lines.push("Not measured here: CPU, process memory.");
|
|
33
|
+
return lines;
|
|
34
|
+
}
|
|
35
|
+
/** The first line of the answer. `tap` names the tap the agent asked for, when there was one. */
|
|
36
|
+
export function perfFirstLine(m, tap) {
|
|
37
|
+
if (m.launchS !== undefined) {
|
|
38
|
+
return `Reloaded in ${m.launchS.toFixed(2)} s (to the first settled screen; JavaScript only, not a cold start).`;
|
|
39
|
+
}
|
|
40
|
+
const seconds = m.result.seconds.toFixed(1);
|
|
41
|
+
return tap === undefined ? `Measured ${seconds} s.` : `Measured ${seconds} s, from just before the tap on ${tap}.`;
|
|
42
|
+
}
|
|
43
|
+
/** Whether `under` is something a step may carry: the keys it names that aren't limits, else null. */
|
|
44
|
+
export function badUnderKeys(under) {
|
|
45
|
+
const known = new Set(UNDER_KEYS);
|
|
46
|
+
return Object.keys(under).filter((key) => !known.has(key));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Checks a measurement against `under` (§15.3): `fps_min` against the lowest sample, the others are maximums.
|
|
50
|
+
* `missed` lists every limit that wasn't kept; `notes` the limits that couldn't be checked (no `Note:` prefix).
|
|
51
|
+
*/
|
|
52
|
+
export function checkUnder(under, m) {
|
|
53
|
+
const missed = [];
|
|
54
|
+
const notes = [];
|
|
55
|
+
const r = m.result;
|
|
56
|
+
for (const key of UNDER_KEYS) {
|
|
57
|
+
const limit = under[key];
|
|
58
|
+
if (limit === undefined)
|
|
59
|
+
continue;
|
|
60
|
+
if (UNDER_NOT_MEASURED.includes(key)) {
|
|
61
|
+
notes.push(`${key} isn't measured by Tapline; not checked.`);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
switch (key) {
|
|
65
|
+
case "launch_s":
|
|
66
|
+
if (m.launchS === undefined)
|
|
67
|
+
notes.push("launch_s only applies to a launch step; not checked.");
|
|
68
|
+
else if (m.launchS > limit)
|
|
69
|
+
missed.push(`reloaded in ${m.launchS.toFixed(1)} s, over ${limit.toFixed(1)} s`);
|
|
70
|
+
break;
|
|
71
|
+
case "js_heap_mb":
|
|
72
|
+
if (r.heapPeakMb === undefined)
|
|
73
|
+
notes.push("js_heap_mb couldn't be read in this app (no Hermes heap numbers); not checked.");
|
|
74
|
+
else if (r.heapPeakMb > limit)
|
|
75
|
+
missed.push(`JS heap peaked at ${Math.round(r.heapPeakMb)} MB, over ${limit} MB`);
|
|
76
|
+
break;
|
|
77
|
+
case "fps_min":
|
|
78
|
+
if (r.fpsLowest < limit)
|
|
79
|
+
missed.push(`lowest ${Math.round(r.fpsLowest)} fps, under ${limit}`);
|
|
80
|
+
break;
|
|
81
|
+
case "drops":
|
|
82
|
+
if (r.drops > limit)
|
|
83
|
+
missed.push(`${r.drops} drop${r.drops === 1 ? "" : "s"}, over ${limit}`);
|
|
84
|
+
break;
|
|
85
|
+
case "busy_ms":
|
|
86
|
+
if (r.busyMs > limit)
|
|
87
|
+
missed.push(`JS thread busy ${Math.round(r.busyMs)} ms, over ${limit} ms`);
|
|
88
|
+
break;
|
|
89
|
+
default:
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return { missed, notes };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=perf.js.map
|
package/dist/perf.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf.js","sourceRoot":"","sources":["../src/perf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE1D;;;GAGG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC/F,CAAC,CAAC;AAUH,uHAAuH;AACvH,MAAM,UAAU,eAAe,CAAC,CAAa;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9H,CAAC;IACD,KAAK,CAAC,IAAI,CACR,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,uCAAuC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CACpL,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,CAAC,CAAC,kCAAkC;YACpC,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1I,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,CAAc,EAAE,GAAY;IACxD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,sEAAsE,CAAC;IACnH,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,mCAAmC,GAAG,GAAG,CAAC;AACrH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,YAAY,CAAC,KAA6B;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,UAAU,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAA6B,EAAE,CAAc;IACtE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAK,kBAAwC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,0CAA0C,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,UAAU;gBACb,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;qBAC3F,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7G,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;qBACxH,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;gBACjH,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,CAAC,SAAS,GAAG,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;gBAC9F,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC;gBAC9F,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;gBACjG,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -290,8 +290,18 @@ export declare const logEntrySchema: z.ZodObject<{
|
|
|
290
290
|
ts: z.ZodOptional<z.ZodNumber>;
|
|
291
291
|
stack: z.ZodOptional<z.ZodString>;
|
|
292
292
|
fatal: z.ZodOptional<z.ZodBoolean>;
|
|
293
|
+
name: z.ZodOptional<z.ZodString>;
|
|
294
|
+
componentStack: z.ZodOptional<z.ZodString>;
|
|
293
295
|
}, z.core.$strip>;
|
|
294
296
|
export type LogEntry = z.infer<typeof logEntrySchema>;
|
|
297
|
+
/** The `crash` event: a fatal JS error the SDK kept on the phone and sends after it connects again. */
|
|
298
|
+
export declare const crashEventSchema: z.ZodObject<{
|
|
299
|
+
name: z.ZodOptional<z.ZodString>;
|
|
300
|
+
message: z.ZodString;
|
|
301
|
+
stack: z.ZodOptional<z.ZodString>;
|
|
302
|
+
componentStack: z.ZodOptional<z.ZodString>;
|
|
303
|
+
ts: z.ZodOptional<z.ZodNumber>;
|
|
304
|
+
}, z.core.$strip>;
|
|
295
305
|
/** A target exactly as it travels on the wire. */
|
|
296
306
|
export type WireTarget = {
|
|
297
307
|
ref: string;
|
|
@@ -309,4 +319,6 @@ export type WireTarget = {
|
|
|
309
319
|
y: number;
|
|
310
320
|
};
|
|
311
321
|
/** Request methods the host knows how to issue. */
|
|
312
|
-
export type Method = "tree" | "screenshot" | "press" | "longPress" | "type" | "scroll" | "toggle" | "openURL" | "logs" | "reload"
|
|
322
|
+
export type Method = "tree" | "screenshot" | "press" | "longPress" | "type" | "scroll" | "toggle" | "openURL" | "logs" | "reload" | "perfStart" | "perfStop" | "perfSettle"
|
|
323
|
+
/** Tells the app the host has its saved crash (`{ ts }`), so it can forget it. */
|
|
324
|
+
| "crashAck";
|
package/dist/protocol.js
CHANGED
|
@@ -165,5 +165,16 @@ export const logEntrySchema = z.object({
|
|
|
165
165
|
ts: z.number().optional(),
|
|
166
166
|
stack: z.string().optional(),
|
|
167
167
|
fatal: z.boolean().optional(),
|
|
168
|
+
/** On a fatal error: the error type, and React's component stack when the SDK had one. */
|
|
169
|
+
name: z.string().optional(),
|
|
170
|
+
componentStack: z.string().optional(),
|
|
171
|
+
});
|
|
172
|
+
/** The `crash` event: a fatal JS error the SDK kept on the phone and sends after it connects again. */
|
|
173
|
+
export const crashEventSchema = z.object({
|
|
174
|
+
name: z.string().optional(),
|
|
175
|
+
message: z.string(),
|
|
176
|
+
stack: z.string().optional(),
|
|
177
|
+
componentStack: z.string().optional(),
|
|
178
|
+
ts: z.number().optional(),
|
|
168
179
|
});
|
|
169
180
|
//# sourceMappingURL=protocol.js.map
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
|
@@ -5,10 +5,14 @@ import { z } from "zod";
|
|
|
5
5
|
* goes to the app as it would alone (no screen list in between), and the one change block at the end covers
|
|
6
6
|
* the whole batch.
|
|
7
7
|
*/
|
|
8
|
-
export declare const RUN_TOOLS: readonly ["tap", "long_press", "type_text", "scroll", "toggle", "back", "swipe", "open_url", "wait", "wait_for", "app_command", "compare_screen"];
|
|
8
|
+
export declare const RUN_TOOLS: readonly ["tap", "long_press", "type_text", "scroll", "toggle", "back", "swipe", "open_url", "wait", "wait_for", "app_command", "compare_screen", "performance"];
|
|
9
9
|
export type RunTool = (typeof RUN_TOOLS)[number];
|
|
10
10
|
/** Tools a step may not be (they read or manage, rather than act): `bad_params`. */
|
|
11
11
|
export declare const NOT_IN_RUN: string[];
|
|
12
|
+
/** AGENT-TOOLS §15.3: the limits a `performance` step may carry in `expect.under`. */
|
|
13
|
+
export declare const UNDER_KEYS: readonly ["launch_s", "memory_mb", "js_heap_mb", "cpu_percent", "fps_min", "drops", "busy_ms"];
|
|
14
|
+
/** Limits Tapline can't measure: ignored with a note, one per key. */
|
|
15
|
+
export declare const UNDER_NOT_MEASURED: readonly ["memory_mb", "cpu_percent"];
|
|
12
16
|
export declare const expectSchema: z.ZodObject<{
|
|
13
17
|
text: z.ZodOptional<z.ZodString>;
|
|
14
18
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -19,6 +23,7 @@ export declare const expectSchema: z.ZodObject<{
|
|
|
19
23
|
threshold: z.ZodOptional<z.ZodNumber>;
|
|
20
24
|
ignore: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
21
25
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
under: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
22
27
|
}, z.core.$strip>;
|
|
23
28
|
export type Expect = z.infer<typeof expectSchema>;
|
|
24
29
|
export declare const stepSchema: z.ZodObject<{
|
|
@@ -33,6 +38,7 @@ export declare const stepSchema: z.ZodObject<{
|
|
|
33
38
|
threshold: z.ZodOptional<z.ZodNumber>;
|
|
34
39
|
ignore: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
35
40
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
under: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
36
42
|
}, z.core.$strip>>;
|
|
37
43
|
}, z.core.$loose>;
|
|
38
44
|
export type Step = z.infer<typeof stepSchema>;
|
package/dist/run.js
CHANGED
|
@@ -5,9 +5,13 @@ import { z } from "zod";
|
|
|
5
5
|
* goes to the app as it would alone (no screen list in between), and the one change block at the end covers
|
|
6
6
|
* the whole batch.
|
|
7
7
|
*/
|
|
8
|
-
export const RUN_TOOLS = ["tap", "long_press", "type_text", "scroll", "toggle", "back", "swipe", "open_url", "wait", "wait_for", "app_command", "compare_screen"];
|
|
8
|
+
export const RUN_TOOLS = ["tap", "long_press", "type_text", "scroll", "toggle", "back", "swipe", "open_url", "wait", "wait_for", "app_command", "compare_screen", "performance"];
|
|
9
9
|
/** Tools a step may not be (they read or manage, rather than act): `bad_params`. */
|
|
10
|
-
export const NOT_IN_RUN = ["look", "run", "audit", "apps", "viewer", "record", "replay", "inspect", "check_layout", "pair", "open_app", "logs", "reload", "filmstrip"];
|
|
10
|
+
export const NOT_IN_RUN = ["look", "run", "audit", "apps", "viewer", "record", "replay", "inspect", "check_layout", "pair", "open_app", "logs", "crash", "reload", "filmstrip"];
|
|
11
|
+
/** AGENT-TOOLS §15.3: the limits a `performance` step may carry in `expect.under`. */
|
|
12
|
+
export const UNDER_KEYS = ["launch_s", "memory_mb", "js_heap_mb", "cpu_percent", "fps_min", "drops", "busy_ms"];
|
|
13
|
+
/** Limits Tapline can't measure: ignored with a note, one per key. */
|
|
14
|
+
export const UNDER_NOT_MEASURED = ["memory_mb", "cpu_percent"];
|
|
11
15
|
export const expectSchema = z
|
|
12
16
|
.object({
|
|
13
17
|
text: z.string().optional(),
|
|
@@ -21,10 +25,16 @@ export const expectSchema = z
|
|
|
21
25
|
/** Targets or rects painted out before the picture check (the shape of compare_screen's ignore); checked by the executor. */
|
|
22
26
|
ignore: z.array(z.record(z.string(), z.unknown())).optional(),
|
|
23
27
|
timeout: z.number().min(0.5).max(30).optional(),
|
|
28
|
+
/** On a `performance` step only; the keys are checked when the batch runs (`bad_params`). */
|
|
29
|
+
under: z.record(z.string(), z.number()).optional(),
|
|
24
30
|
})
|
|
25
|
-
.refine((e) =>
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
.refine((e) => {
|
|
32
|
+
const named = [e.text, e.id, e.label].filter((v) => v !== undefined).length;
|
|
33
|
+
// `under` (a performance step) stands alone.
|
|
34
|
+
if (e.under !== undefined)
|
|
35
|
+
return named === 0 && e.matches === undefined;
|
|
36
|
+
return named === 1 || (e.matches !== undefined && named === 0);
|
|
37
|
+
}, { message: "expect needs exactly one of text, id or label, or matches (alone, or with one of them); on a performance step, under alone" })
|
|
28
38
|
.refine((e) => e.threshold === undefined || e.matches !== undefined, { message: "expect.threshold goes with matches" })
|
|
29
39
|
.refine((e) => e.ignore === undefined || e.matches !== undefined, { message: "expect.ignore goes with matches" })
|
|
30
40
|
.refine((e) => e.value === undefined || e.text === undefined, { message: "expect.value goes with id or label" });
|
|
@@ -65,6 +75,8 @@ export function describeRunStep(step) {
|
|
|
65
75
|
return "open_url";
|
|
66
76
|
case "app_command":
|
|
67
77
|
return `app_command ${String(p["name"] ?? "")}`.trim();
|
|
78
|
+
case "performance":
|
|
79
|
+
return p["launch"] === true ? "performance launch" : `performance ${Number(p["seconds"] ?? 3)} s`;
|
|
68
80
|
case "back":
|
|
69
81
|
return "back";
|
|
70
82
|
case "compare_screen":
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/script.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare const sharedScriptSchema: z.ZodObject<{
|
|
|
24
24
|
threshold: z.ZodOptional<z.ZodNumber>;
|
|
25
25
|
ignore: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
26
26
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
under: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
27
28
|
}, z.core.$strip>>;
|
|
28
29
|
}, z.core.$loose>>;
|
|
29
30
|
}, z.core.$strip>;
|
|
@@ -68,6 +69,11 @@ export declare function refStep(steps: Step[]): number | null;
|
|
|
68
69
|
* line (the failure message) ends with ` (diff: <path>)`.
|
|
69
70
|
*/
|
|
70
71
|
export declare function failureWithDiff(failure: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* What a failed replay's answer says about the app (AGENT-TOOLS 1.10 §15.4), for JUnit's `<system-out>`: the
|
|
74
|
+
* `Logs (since step <n>):` block and the crash note.
|
|
75
|
+
*/
|
|
76
|
+
export declare function failureDiagnostics(failure: string): string | null;
|
|
71
77
|
/** JUnit XML for `tapline replay --junit`: one test case per script, the stop message as the failure. */
|
|
72
78
|
export declare function junitXml(results: Array<{
|
|
73
79
|
name: string;
|
package/dist/script.js
CHANGED
|
@@ -40,6 +40,7 @@ const TOOL_OF = {
|
|
|
40
40
|
command: "app_command",
|
|
41
41
|
waitFor: "wait_for",
|
|
42
42
|
sleep: "wait",
|
|
43
|
+
performance: "performance",
|
|
43
44
|
};
|
|
44
45
|
/** The app's target (`testID`) as a tool target (`id`). */
|
|
45
46
|
function toolTarget(target) {
|
|
@@ -131,7 +132,8 @@ export function readScript(text) {
|
|
|
131
132
|
/** A step a script can't keep: a ref (it doesn't survive a session). */
|
|
132
133
|
export function refStep(steps) {
|
|
133
134
|
const at = steps.findIndex((step) => {
|
|
134
|
-
|
|
135
|
+
// A performance step's tap is a target too.
|
|
136
|
+
const target = step[step.tool === "performance" ? "tap" : "target"];
|
|
135
137
|
return typeof target === "object" && target !== null && "ref" in target;
|
|
136
138
|
});
|
|
137
139
|
return at >= 0 ? at : null;
|
|
@@ -148,14 +150,44 @@ export function failureWithDiff(failure) {
|
|
|
148
150
|
lines[0] = `${lines[0] ?? ""} (diff: ${note[1] ?? ""})`;
|
|
149
151
|
return lines.join("\n");
|
|
150
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* What a failed replay's answer says about the app (AGENT-TOOLS 1.10 §15.4), for JUnit's `<system-out>`: the
|
|
155
|
+
* `Logs (since step <n>):` block and the crash note.
|
|
156
|
+
*/
|
|
157
|
+
export function failureDiagnostics(failure) {
|
|
158
|
+
const lines = failure.split("\n");
|
|
159
|
+
const out = [];
|
|
160
|
+
const start = lines.findIndex((line) => /^Logs \(since step \d+\):$/.test(line));
|
|
161
|
+
if (start >= 0) {
|
|
162
|
+
out.push(lines[start] ?? "");
|
|
163
|
+
for (const line of lines.slice(start + 1)) {
|
|
164
|
+
if (!/^\d\d:\d\d:\d\d\.\d{3} (error|warning|info) /.test(line))
|
|
165
|
+
break;
|
|
166
|
+
out.push(line);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
out.push(...lines.filter((line) => /^Note: the app (crashed|disconnected)\b/.test(line)));
|
|
170
|
+
return out.length > 0 ? out.join("\n") : null;
|
|
171
|
+
}
|
|
151
172
|
/** JUnit XML for `tapline replay --junit`: one test case per script, the stop message as the failure. */
|
|
152
173
|
export function junitXml(results) {
|
|
153
|
-
|
|
174
|
+
// XML 1.0 forbids control characters other than tab, newline and carriage return (an ANSI colour code's ESC too).
|
|
175
|
+
// eslint-disable-next-line no-control-regex
|
|
176
|
+
const esc = (s) => s.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g, "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
177
|
+
const diagnosticsOut = (failure) => {
|
|
178
|
+
const said = failureDiagnostics(failure);
|
|
179
|
+
return said === null ? [] : [` <system-out>${esc(said)}</system-out>`];
|
|
180
|
+
};
|
|
154
181
|
const failures = results.filter((r) => r.failure !== null).length;
|
|
155
182
|
const total = results.reduce((sum, r) => sum + r.seconds, 0);
|
|
156
183
|
const cases = results.map((r) => r.failure === null
|
|
157
184
|
? ` <testcase classname="tapline" name="${esc(r.name)}" time="${r.seconds.toFixed(3)}"/>`
|
|
158
|
-
:
|
|
185
|
+
: [
|
|
186
|
+
` <testcase classname="tapline" name="${esc(r.name)}" time="${r.seconds.toFixed(3)}">`,
|
|
187
|
+
` <failure message="${esc(r.failure.split("\n")[0] ?? "")}">${esc(r.failure)}</failure>`,
|
|
188
|
+
...diagnosticsOut(r.failure),
|
|
189
|
+
" </testcase>",
|
|
190
|
+
].join("\n"));
|
|
159
191
|
return [
|
|
160
192
|
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
161
193
|
`<testsuites tests="${results.length}" failures="${failures}" time="${total.toFixed(3)}">`,
|
package/dist/script.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAa,MAAM,UAAU,CAAC;AAEjD;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;CAC3B,CAAC,CAAC;AAGH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CACH;CACF,CAAC,CAAC;AASH,MAAM,OAAO,GAA2B;IACtC,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -42,6 +42,38 @@ export interface AppFrame {
|
|
|
42
42
|
width?: number;
|
|
43
43
|
height?: number;
|
|
44
44
|
}
|
|
45
|
+
/** A fatal JS error of an app (AGENT-TOOLS 15.2), kept per app so it outlives the app's session. */
|
|
46
|
+
export interface CrashRecord {
|
|
47
|
+
/** When the app says it happened (the phone's clock, epoch ms). */
|
|
48
|
+
ts: number;
|
|
49
|
+
/** The error type, e.g. "TypeError". */
|
|
50
|
+
name: string;
|
|
51
|
+
message: string;
|
|
52
|
+
stack: string;
|
|
53
|
+
componentStack?: string;
|
|
54
|
+
/** `live`: the app sent it as it happened; `saved`: the app kept it on the phone and sent it on a later connection. */
|
|
55
|
+
source: "live" | "saved";
|
|
56
|
+
}
|
|
57
|
+
/** Which app on which phone an event belongs to (what `identityOf` is made from). */
|
|
58
|
+
export type AppIdentity = Pick<SessionInfo, "app" | "device">;
|
|
59
|
+
/**
|
|
60
|
+
* Something that stopped an app, in the order the host learned of it. `seq` counts up from 1. `of` says which app
|
|
61
|
+
* it was, so another app's answers don't carry it.
|
|
62
|
+
*/
|
|
63
|
+
export type CrashEvent = {
|
|
64
|
+
seq: number;
|
|
65
|
+
at: number;
|
|
66
|
+
kind: "crash";
|
|
67
|
+
app: string;
|
|
68
|
+
of: AppIdentity;
|
|
69
|
+
crash: CrashRecord;
|
|
70
|
+
} | {
|
|
71
|
+
seq: number;
|
|
72
|
+
at: number;
|
|
73
|
+
kind: "disconnect";
|
|
74
|
+
app: string;
|
|
75
|
+
of: AppIdentity;
|
|
76
|
+
};
|
|
45
77
|
/** The most recent app that dropped, for explaining "no app is connected". */
|
|
46
78
|
export interface LastDisconnect {
|
|
47
79
|
session: SessionInfo;
|
|
@@ -138,6 +170,7 @@ interface HostEvents {
|
|
|
138
170
|
selected: [session: SessionInfo | undefined];
|
|
139
171
|
warning: [message: string];
|
|
140
172
|
}
|
|
173
|
+
export declare function identityOf(info: AppIdentity): string;
|
|
141
174
|
export declare class TaplineHost extends EventEmitter<HostEvents> {
|
|
142
175
|
private readonly token;
|
|
143
176
|
private readonly port;
|
|
@@ -157,8 +190,16 @@ export declare class TaplineHost extends EventEmitter<HostEvents> {
|
|
|
157
190
|
private agentTouchUntil;
|
|
158
191
|
private readonly servers;
|
|
159
192
|
private readonly sessionMap;
|
|
193
|
+
/** The logs of the last few sessions that ended, so a failure that ended its app still reports that app's lines. */
|
|
194
|
+
private readonly goneLogs;
|
|
160
195
|
private selectedId;
|
|
161
196
|
private lastDrop;
|
|
197
|
+
/** When this host process started (this computer's clock), to tell a crash from an earlier run. */
|
|
198
|
+
readonly startedAt: number;
|
|
199
|
+
/** Fatal JS errors per app (by `identityOf`), newest last. */
|
|
200
|
+
private readonly crashMap;
|
|
201
|
+
private readonly crashLog;
|
|
202
|
+
private crashSeq;
|
|
162
203
|
private httpExtension;
|
|
163
204
|
/** Open after `pair`: development builds on the local network may fetch this code (one use, 10 minutes). */
|
|
164
205
|
private devOffer;
|
|
@@ -218,6 +259,29 @@ export declare class TaplineHost extends EventEmitter<HostEvents> {
|
|
|
218
259
|
select(sessionId: string): SessionInfo;
|
|
219
260
|
/** Buffered log/error events for a session, optionally only those after `since` (epoch ms). */
|
|
220
261
|
logs(sessionId: string, since?: number): LogEntry[];
|
|
262
|
+
/**
|
|
263
|
+
* A session's lines whether it is connected or ended (the last few ended ones are kept), and its app and device
|
|
264
|
+
* identity; undefined when nothing is known of it.
|
|
265
|
+
*/
|
|
266
|
+
sessionRecord(sessionId: string): {
|
|
267
|
+
identity: string;
|
|
268
|
+
events: LogEntry[];
|
|
269
|
+
} | undefined;
|
|
270
|
+
/** The agent is about to end the app's connection on purpose (a reload): that is no crash. */
|
|
271
|
+
expectEnd(sessionId: string, expected?: boolean): void;
|
|
272
|
+
/** The number of crash events so far; pass it to `crashEventsAfter` later. */
|
|
273
|
+
crashMark(): number;
|
|
274
|
+
/** Crash events after `seq`, oldest first; only those of the app `of` when it is given. */
|
|
275
|
+
crashEventsAfter(seq: number, of?: AppIdentity): CrashEvent[];
|
|
276
|
+
/** The newest crash event of any app, if any is still kept. */
|
|
277
|
+
lastCrashEvent(): CrashEvent | undefined;
|
|
278
|
+
/**
|
|
279
|
+
* Fatal JS errors of the app `of` (or of every app when it is undefined), newest first. They outlive the
|
|
280
|
+
* app's sessions, so a crash that ended the session can still be read.
|
|
281
|
+
*/
|
|
282
|
+
crashes(of?: Pick<SessionInfo, "app" | "device">): CrashRecord[];
|
|
283
|
+
private recordCrash;
|
|
284
|
+
private pushCrashEvent;
|
|
221
285
|
private describeIds;
|
|
222
286
|
private currentSession;
|
|
223
287
|
/** Sends a request to an app and resolves with its `result` (or rejects with a TaplineError). */
|