codeloop-mcp-server 0.1.75 → 0.1.77
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/evidence/interaction_evidence.d.ts +46 -0
- package/dist/evidence/interaction_evidence.d.ts.map +1 -0
- package/dist/evidence/interaction_evidence.js +91 -0
- package/dist/evidence/interaction_evidence.js.map +1 -0
- package/dist/evidence/runtime_log_scan.d.ts.map +1 -1
- package/dist/evidence/runtime_log_scan.js +10 -0
- package/dist/evidence/runtime_log_scan.js.map +1 -1
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -1
- package/dist/runners/app_launcher.d.ts +47 -0
- package/dist/runners/app_launcher.d.ts.map +1 -0
- package/dist/runners/app_launcher.js +300 -0
- package/dist/runners/app_launcher.js.map +1 -0
- package/dist/runners/cli_auth.d.ts +35 -0
- package/dist/runners/cli_auth.d.ts.map +1 -0
- package/dist/runners/cli_auth.js +127 -0
- package/dist/runners/cli_auth.js.map +1 -0
- package/dist/runners/journey_to_maestro.d.ts +31 -0
- package/dist/runners/journey_to_maestro.d.ts.map +1 -0
- package/dist/runners/journey_to_maestro.js +101 -0
- package/dist/runners/journey_to_maestro.js.map +1 -0
- package/dist/runners/maestro_generator.d.ts +5 -1
- package/dist/runners/maestro_generator.d.ts.map +1 -1
- package/dist/runners/maestro_generator.js +12 -4
- package/dist/runners/maestro_generator.js.map +1 -1
- package/dist/runners/mobile_app_id.d.ts +7 -0
- package/dist/runners/mobile_app_id.d.ts.map +1 -0
- package/dist/runners/mobile_app_id.js +100 -0
- package/dist/runners/mobile_app_id.js.map +1 -0
- package/dist/tools/diagnose.js +8 -0
- package/dist/tools/diagnose.js.map +1 -1
- package/dist/tools/gate_check.d.ts.map +1 -1
- package/dist/tools/gate_check.js +29 -0
- package/dist/tools/gate_check.js.map +1 -1
- package/dist/tools/run_journey.d.ts +14 -0
- package/dist/tools/run_journey.d.ts.map +1 -1
- package/dist/tools/run_journey.js +170 -6
- package/dist/tools/run_journey.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +68 -2
- package/dist/tools/verify.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/** A label is usable as a Maestro text matcher only if it's short, visible text. */
|
|
2
|
+
function usableLabel(s) {
|
|
3
|
+
if (!s)
|
|
4
|
+
return null;
|
|
5
|
+
const t = s.trim();
|
|
6
|
+
// Reject empties, very long blobs, CSS/selectors, and pure punctuation.
|
|
7
|
+
if (!t || t.length > 60)
|
|
8
|
+
return null;
|
|
9
|
+
if (/^[#.[]|[{}<>]/.test(t))
|
|
10
|
+
return null; // looks like a CSS/HTML selector
|
|
11
|
+
if (!/[A-Za-z0-9]/.test(t))
|
|
12
|
+
return null;
|
|
13
|
+
return t;
|
|
14
|
+
}
|
|
15
|
+
/** Maestro inputText cannot contain a double-quote unescaped; sanitise. */
|
|
16
|
+
function safeText(s) {
|
|
17
|
+
return s.replace(/"/g, "'").replace(/\s+/g, " ").trim().slice(0, 200);
|
|
18
|
+
}
|
|
19
|
+
function emitEntityStep(step, out, shots) {
|
|
20
|
+
switch (step.step) {
|
|
21
|
+
case "navigate":
|
|
22
|
+
case "create":
|
|
23
|
+
case "commit":
|
|
24
|
+
case "edit":
|
|
25
|
+
case "delete": {
|
|
26
|
+
const label = usableLabel(step.target);
|
|
27
|
+
if (label) {
|
|
28
|
+
out.push(`tap "${label}"`);
|
|
29
|
+
if (shots)
|
|
30
|
+
out.push("take screenshot");
|
|
31
|
+
}
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case "fill": {
|
|
35
|
+
for (const f of step.fields ?? []) {
|
|
36
|
+
const label = usableLabel(f.label);
|
|
37
|
+
const value = f.example != null ? safeText(String(f.example)) : "";
|
|
38
|
+
if (label && value) {
|
|
39
|
+
// Tap the field by its label, then type — scopes inputText to it.
|
|
40
|
+
out.push(`tap "${label}"`);
|
|
41
|
+
out.push(`type "${value}"`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (shots)
|
|
45
|
+
out.push("take screenshot");
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case "verify": {
|
|
49
|
+
const label = usableLabel(step.target);
|
|
50
|
+
if (label)
|
|
51
|
+
out.push(`assert visible "${label}" timeout 8000`);
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case "upload":
|
|
55
|
+
// File upload isn't expressible as a label action — leave to fallback.
|
|
56
|
+
break;
|
|
57
|
+
case "ai_prompt":
|
|
58
|
+
// Handled in the AI arc path.
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* PURE: build the ordered list of Maestro string-steps for a journey plan.
|
|
64
|
+
* Order: a leading screenshot, then top entity CRUD arcs, then AI chatbox arcs.
|
|
65
|
+
*/
|
|
66
|
+
export function journeyToMaestroSteps(plan, opts = {}) {
|
|
67
|
+
const maxEntities = opts.maxEntities ?? 3;
|
|
68
|
+
const shots = opts.screenshots !== false;
|
|
69
|
+
const aiWait = opts.aiWaitSeconds ?? 5;
|
|
70
|
+
const out = [];
|
|
71
|
+
if (shots)
|
|
72
|
+
out.push("take screenshot");
|
|
73
|
+
// Entity CRUD arcs (highest priority first).
|
|
74
|
+
const entities = [...(plan.entities ?? [])]
|
|
75
|
+
.sort((a, b) => (a.priority ?? 99) - (b.priority ?? 99))
|
|
76
|
+
.slice(0, maxEntities);
|
|
77
|
+
for (const entity of entities) {
|
|
78
|
+
for (const step of entity.arc ?? []) {
|
|
79
|
+
emitEntityStep(step, out, shots);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// AI chatbox arcs: type a prompt, submit, wait for the model, screenshot.
|
|
83
|
+
for (const ai of plan.ai_journeys ?? []) {
|
|
84
|
+
const arc = ai.arc ?? [];
|
|
85
|
+
const promptStep = arc.find((s) => s.step === "ai_prompt" && s.ai_prompt);
|
|
86
|
+
const prompt = promptStep?.ai_prompt ?? ai.prompt_examples?.[0];
|
|
87
|
+
if (!prompt)
|
|
88
|
+
continue;
|
|
89
|
+
// If the arc names an input target/label, tap it first to focus.
|
|
90
|
+
const navTarget = usableLabel(arc.find((s) => s.step === "navigate")?.target);
|
|
91
|
+
if (navTarget)
|
|
92
|
+
out.push(`tap "${navTarget}"`);
|
|
93
|
+
out.push(`type "${safeText(prompt)}"`);
|
|
94
|
+
out.push("press enter");
|
|
95
|
+
out.push(`wait ${Math.max(1, aiWait) * 1000}`); // Maestro timeout is in ms
|
|
96
|
+
if (shots)
|
|
97
|
+
out.push("take screenshot");
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=journey_to_maestro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey_to_maestro.js","sourceRoot":"","sources":["../../src/runners/journey_to_maestro.ts"],"names":[],"mappings":"AA2BA,oFAAoF;AACpF,SAAS,WAAW,CAAC,CAAqB;IACxC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,iCAAiC;IAC3E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2EAA2E;AAC3E,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,cAAc,CAAC,IAAiB,EAAE,GAAa,EAAE,KAAc;IACtE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;gBAC3B,IAAI,KAAK;oBAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;oBACnB,kEAAkE;oBAClE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvC,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,gBAAgB,CAAC,CAAC;YAC9D,MAAM;QACR,CAAC;QACD,KAAK,QAAQ;YACX,uEAAuE;YACvE,MAAM;QACR,KAAK,WAAW;YACd,8BAA8B;YAC9B,MAAM;IACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAqB,EACrB,OAAgC,EAAE;IAElC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,IAAI,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEvC,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;SACvD,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;YACpC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,iEAAiE;QACjE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9E,IAAI,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,2BAA2B;QAC3E,IAAI,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export declare function generateMaestroFlow(steps: string[], cwd: string
|
|
1
|
+
export declare function generateMaestroFlow(steps: string[], cwd: string, opts?: {
|
|
2
|
+
appId?: string;
|
|
3
|
+
outputDir?: string;
|
|
4
|
+
}): Promise<{
|
|
2
5
|
flowPath: string;
|
|
3
6
|
} | {
|
|
4
7
|
error: string;
|
|
5
8
|
}>;
|
|
9
|
+
export declare function stepToYaml(step: string): string;
|
|
6
10
|
export declare function runGeneratedFlow(flowPath: string, cwd: string): Promise<{
|
|
7
11
|
success: boolean;
|
|
8
12
|
output: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maestro_generator.d.ts","sourceRoot":"","sources":["../../src/runners/maestro_generator.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"maestro_generator.d.ts","sourceRoot":"","sources":["../../src/runners/maestro_generator.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAenD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkD/C;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAe/D"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { writeFileSync, mkdirSync, existsSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { checkToolAvailable, runCommand } from "./base.js";
|
|
4
|
-
export async function generateMaestroFlow(steps, cwd) {
|
|
5
|
-
const maestroDir = join(cwd, ".maestro");
|
|
4
|
+
export async function generateMaestroFlow(steps, cwd, opts = {}) {
|
|
5
|
+
const maestroDir = opts.outputDir ?? join(cwd, ".maestro");
|
|
6
6
|
mkdirSync(maestroDir, { recursive: true });
|
|
7
|
-
|
|
7
|
+
// Use the resolved app id when known so the flow installs/launches the RIGHT
|
|
8
|
+
// app; fall back to the ${APP_ID} placeholder otherwise.
|
|
9
|
+
const appId = opts.appId && opts.appId.trim() ? opts.appId.trim() : "${APP_ID}";
|
|
10
|
+
const yamlLines = [`appId: ${appId}`, "---"];
|
|
8
11
|
for (const step of steps) {
|
|
9
12
|
yamlLines.push(stepToYaml(step));
|
|
10
13
|
}
|
|
@@ -12,7 +15,7 @@ export async function generateMaestroFlow(steps, cwd) {
|
|
|
12
15
|
writeFileSync(flowPath, yamlLines.join("\n") + "\n");
|
|
13
16
|
return { flowPath };
|
|
14
17
|
}
|
|
15
|
-
function stepToYaml(step) {
|
|
18
|
+
export function stepToYaml(step) {
|
|
16
19
|
const lower = step.toLowerCase().trim();
|
|
17
20
|
const tapMatch = lower.match(/^tap\s+(\d+)\s+(\d+)$/);
|
|
18
21
|
if (tapMatch)
|
|
@@ -40,6 +43,11 @@ function stepToYaml(step) {
|
|
|
40
43
|
const waitMatch = lower.match(/^wait\s+(\d+)$/);
|
|
41
44
|
if (waitMatch)
|
|
42
45
|
return `- waitForAnimationToEnd:\n timeout: ${waitMatch[1]}`;
|
|
46
|
+
// assert visible "<text>" timeout <ms> -> wait up to <ms> for it to appear
|
|
47
|
+
// (used for AI replies / async content that takes a moment to render).
|
|
48
|
+
const assertTimeoutMatch = step.match(/^assert\s+visible\s+"(.+)"\s+timeout\s+(\d+)$/i);
|
|
49
|
+
if (assertTimeoutMatch)
|
|
50
|
+
return `- extendedWaitUntil:\n visible: "${assertTimeoutMatch[1]}"\n timeout: ${assertTimeoutMatch[2]}`;
|
|
43
51
|
const assertMatch = step.match(/^assert\s+visible\s+"(.+)"$/i);
|
|
44
52
|
if (assertMatch)
|
|
45
53
|
return `- assertVisible: "${assertMatch[1]}"`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maestro_generator.js","sourceRoot":"","sources":["../../src/runners/maestro_generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAe,EACf,GAAW;
|
|
1
|
+
{"version":3,"file":"maestro_generator.js","sourceRoot":"","sources":["../../src/runners/maestro_generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Android applicationId from common Gradle locations (Flutter + native). */
|
|
2
|
+
export declare function resolveAndroidAppId(cwd: string): string | null;
|
|
3
|
+
/** iOS bundle id (PRODUCT_BUNDLE_IDENTIFIER) from the Xcode pbxproj. */
|
|
4
|
+
export declare function resolveIosAppId(cwd: string): string | null;
|
|
5
|
+
/** Resolve the app id for the given mobile platform. */
|
|
6
|
+
export declare function resolveMobileAppId(cwd: string, platform: "android" | "ios"): string | null;
|
|
7
|
+
//# sourceMappingURL=mobile_app_id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobile_app_id.d.ts","sourceRoot":"","sources":["../../src/runners/mobile_app_id.ts"],"names":[],"mappings":"AA0BA,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4B9D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8B1D;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,SAAS,GAAG,KAAK,GAC1B,MAAM,GAAG,IAAI,CAEf"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mobile_app_id — resolve the install/launch identifier for a mobile app so a
|
|
3
|
+
* generated Maestro flow (and native launch) targets the RIGHT app:
|
|
4
|
+
* - Android: the Gradle `applicationId` (package id, e.g. com.acme.app)
|
|
5
|
+
* - iOS: the Xcode `PRODUCT_BUNDLE_IDENTIFIER` (bundle id)
|
|
6
|
+
*
|
|
7
|
+
* Works for both Flutter (android/, ios/Runner.xcodeproj) and native
|
|
8
|
+
* (app/build.gradle, *.xcodeproj) layouts. Pure file reads; returns null when
|
|
9
|
+
* it can't determine the id (caller degrades to ${APP_ID} / a directive).
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readFileSync, readdirSync } from "fs";
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
function firstMatch(text, re) {
|
|
14
|
+
const m = text.match(re);
|
|
15
|
+
return m ? m[1] : null;
|
|
16
|
+
}
|
|
17
|
+
function readIfExists(path) {
|
|
18
|
+
try {
|
|
19
|
+
return existsSync(path) ? readFileSync(path, "utf-8") : null;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Android applicationId from common Gradle locations (Flutter + native). */
|
|
26
|
+
export function resolveAndroidAppId(cwd) {
|
|
27
|
+
const candidates = [
|
|
28
|
+
join(cwd, "android", "app", "build.gradle"),
|
|
29
|
+
join(cwd, "android", "app", "build.gradle.kts"),
|
|
30
|
+
join(cwd, "app", "build.gradle"),
|
|
31
|
+
join(cwd, "app", "build.gradle.kts"),
|
|
32
|
+
join(cwd, "build.gradle"),
|
|
33
|
+
join(cwd, "build.gradle.kts"),
|
|
34
|
+
];
|
|
35
|
+
for (const path of candidates) {
|
|
36
|
+
const content = readIfExists(path);
|
|
37
|
+
if (!content)
|
|
38
|
+
continue;
|
|
39
|
+
// applicationId "com.acme.app" / applicationId = "com.acme.app"
|
|
40
|
+
const id = firstMatch(content, /applicationId\s*[=:\s]*["']([^"']+)["']/);
|
|
41
|
+
if (id && !/\$\{/.test(id))
|
|
42
|
+
return id;
|
|
43
|
+
}
|
|
44
|
+
// Fallback: AndroidManifest package attribute (older projects).
|
|
45
|
+
const manifests = [
|
|
46
|
+
join(cwd, "android", "app", "src", "main", "AndroidManifest.xml"),
|
|
47
|
+
join(cwd, "app", "src", "main", "AndroidManifest.xml"),
|
|
48
|
+
];
|
|
49
|
+
for (const path of manifests) {
|
|
50
|
+
const content = readIfExists(path);
|
|
51
|
+
if (!content)
|
|
52
|
+
continue;
|
|
53
|
+
const pkg = firstMatch(content, /package\s*=\s*"([^"]+)"/);
|
|
54
|
+
if (pkg)
|
|
55
|
+
return pkg;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/** iOS bundle id (PRODUCT_BUNDLE_IDENTIFIER) from the Xcode pbxproj. */
|
|
60
|
+
export function resolveIosAppId(cwd) {
|
|
61
|
+
const pbxprojs = [];
|
|
62
|
+
// Flutter layout.
|
|
63
|
+
const flutterPbx = join(cwd, "ios", "Runner.xcodeproj", "project.pbxproj");
|
|
64
|
+
if (existsSync(flutterPbx))
|
|
65
|
+
pbxprojs.push(flutterPbx);
|
|
66
|
+
// Native layout: first *.xcodeproj at the root (or under ios/).
|
|
67
|
+
for (const base of [cwd, join(cwd, "ios")]) {
|
|
68
|
+
try {
|
|
69
|
+
for (const e of readdirSync(base)) {
|
|
70
|
+
if (e.endsWith(".xcodeproj")) {
|
|
71
|
+
const p = join(base, e, "project.pbxproj");
|
|
72
|
+
if (existsSync(p))
|
|
73
|
+
pbxprojs.push(p);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
/* dir may not exist */
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
for (const path of [...new Set(pbxprojs)]) {
|
|
82
|
+
const content = readIfExists(path);
|
|
83
|
+
if (!content)
|
|
84
|
+
continue;
|
|
85
|
+
// Pick the first concrete bundle id that isn't a build-var placeholder.
|
|
86
|
+
const re = /PRODUCT_BUNDLE_IDENTIFIER\s*=\s*"?([A-Za-z0-9.\-$()]+)"?\s*;/g;
|
|
87
|
+
let m;
|
|
88
|
+
while ((m = re.exec(content)) !== null) {
|
|
89
|
+
const id = m[1];
|
|
90
|
+
if (id && !/\$\(|\$\{|RunnerTests|\.tests?$/i.test(id))
|
|
91
|
+
return id;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
/** Resolve the app id for the given mobile platform. */
|
|
97
|
+
export function resolveMobileAppId(cwd, platform) {
|
|
98
|
+
return platform === "android" ? resolveAndroidAppId(cwd) : resolveIosAppId(cwd);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=mobile_app_id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobile_app_id.js","sourceRoot":"","sources":["../../src/runners/mobile_app_id.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/diagnose.js
CHANGED
|
@@ -239,6 +239,14 @@ function readAllLogs(runDir) {
|
|
|
239
239
|
return "";
|
|
240
240
|
return readdirSync(logDir)
|
|
241
241
|
.filter((f) => f.endsWith(".log"))
|
|
242
|
+
// Build/compile + test classification must only see BUILD/TEST logs.
|
|
243
|
+
// The backend runtime log and pulled remote/hosting logs are runtime/setup
|
|
244
|
+
// output (graded by runtime_log_clean_evidence / backend_smoke, with their
|
|
245
|
+
// own dedicated diagnose paths). Scanning them here let a CLI auth/setup
|
|
246
|
+
// line like "Error: Your credentials are no longer valid. Please run
|
|
247
|
+
// firebase login --reauth" be misclassified as a critical build/compile
|
|
248
|
+
// error — a false-critical that has nothing to do with the source code.
|
|
249
|
+
.filter((f) => f !== "backend.log" && !f.startsWith("remote_"))
|
|
242
250
|
.map((f) => {
|
|
243
251
|
try {
|
|
244
252
|
return readFileSync(join(logDir, f), "utf-8");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate_check.d.ts","sourceRoot":"","sources":["../../src/tools/gate_check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAEf,cAAc,EAEf,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"gate_check.d.ts","sourceRoot":"","sources":["../../src/tools/gate_check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAEf,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAkE9B,wBAAsB,YAAY,CAChC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,cAAc,EACtB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAwG1B;AA6ED,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/tools/gate_check.js
CHANGED
|
@@ -13,6 +13,8 @@ import { loadCodeQualityEvidence, evaluateStaticAnalysisGate, evaluateCoverageGa
|
|
|
13
13
|
import { loadBackendVerification, evaluateBackendSmokeGate, evaluateApiContractGate, evaluateDbSchemaGate, evaluateBackendTestsGate, } from "../evidence/backend_verification.js";
|
|
14
14
|
import { loadRuntimeLogScan, evaluateRuntimeLogGate, } from "../evidence/runtime_log_scan.js";
|
|
15
15
|
import { loadObservabilityEvidence, evaluateObservabilityGate, } from "../evidence/observability.js";
|
|
16
|
+
import { loadLatestInteractionEvidence, evaluateInteractionEvidenceGate, } from "../evidence/interaction_evidence.js";
|
|
17
|
+
import { resolveAgentMode } from "../evidence/agent_mode.js";
|
|
16
18
|
export async function runGateCheck(input, config, cwd = process.cwd()) {
|
|
17
19
|
const baseDir = getArtifactsBaseDir(cwd);
|
|
18
20
|
const meta = loadRunMeta(input.run_id, baseDir);
|
|
@@ -125,6 +127,8 @@ function nextStepForGate(name, reason, cwd) {
|
|
|
125
127
|
return "Static analysis surfaced critical issues. Call codeloop_diagnose to see the repair tasks and fix only the confirmed issues listed.";
|
|
126
128
|
case "acceptance_criteria_met":
|
|
127
129
|
return `Test coverage is below the acceptance ratio (${reason}). Read the acceptance criteria file passed to gate_check and add at least one regression test per uncovered criterion. The agent must NOT mark the gate as ignored — write tests until the ratio reaches 1.0.`;
|
|
130
|
+
case "interaction_evidence":
|
|
131
|
+
return `No interactive testing of the running app (${reason}). The ONE-CALL path: call codeloop_run_journey (fix mode) — it launches the app (web/desktop/Flutter) or boots the emulator/simulator, drives a real journey (types into fields, taps by label, submits, asserts) via Maestro on mobile, screenshots every screen, and records video. (Or use the manual codeloop_start_recording -> codeloop_interact -> codeloop_stop_recording flow.) If the app won't launch, fix the build first (e.g. pod install / missing assets / firebase login --reauth).`;
|
|
128
132
|
case "screenshot_evidence":
|
|
129
133
|
return "Call codeloop_discover_screens, then loop codeloop_capture_screenshot for every discovered route. Screenshots live under artifacts/runs/<run_id>/screenshots/.";
|
|
130
134
|
case "video_evidence":
|
|
@@ -210,6 +214,31 @@ async function evaluateEvidenceGates(runId, cwd, config) {
|
|
|
210
214
|
const baseDir = getArtifactsBaseDir(cwd);
|
|
211
215
|
const runDir = getRunDir(runId, baseDir);
|
|
212
216
|
const results = [];
|
|
217
|
+
// interaction_evidence — umbrella gate proving the app was actually DRIVEN
|
|
218
|
+
// (run_journey OR the manual record->interact flow). Applicable-or-n/a: in
|
|
219
|
+
// audit (read-only) mode the app is never driven, so the gate is n/a.
|
|
220
|
+
const interactionGate = {
|
|
221
|
+
name: "interaction_evidence",
|
|
222
|
+
description: "The running app must be driven with real interactions (typing/tapping/submitting) for UI projects.",
|
|
223
|
+
rule: "A fresh run_journey interaction_evidence.json OR an interaction_log.jsonl exists (n/a in audit mode).",
|
|
224
|
+
input_artifacts: ["interaction_evidence.json", "logs/interaction_log.jsonl"],
|
|
225
|
+
pass_threshold: true,
|
|
226
|
+
severity_if_failed: "blocker",
|
|
227
|
+
retry_allowance: 5,
|
|
228
|
+
escalation_condition: "No interactive testing after 5 attempts (a non-building app can't be driven — fix the build first)",
|
|
229
|
+
};
|
|
230
|
+
const auditMode = resolveAgentMode({ cwd, configMode: config.agent_mode }) === "audit";
|
|
231
|
+
if (auditMode) {
|
|
232
|
+
results.push({ gate: interactionGate, passed: true, reason: "n/a — audit (read-only) mode does not drive the app." });
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
const runsDir = join(baseDir, "runs");
|
|
236
|
+
const journeyEvidence = loadLatestInteractionEvidence(runsDir);
|
|
237
|
+
const journeyStale = journeyEvidence ? isEvidenceStale(cwd, journeyEvidence.mtimeMs).stale : false;
|
|
238
|
+
const hasManualInteractionLogs = newestInteractionLogMtime(cwd) > 0;
|
|
239
|
+
const v = evaluateInteractionEvidenceGate({ journeyEvidence, journeyStale, hasManualInteractionLogs });
|
|
240
|
+
results.push({ gate: interactionGate, passed: v.passed, reason: v.reason });
|
|
241
|
+
}
|
|
213
242
|
const screenshotGate = {
|
|
214
243
|
name: "screenshot_evidence",
|
|
215
244
|
description: "Screenshots must exist for UI projects",
|