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.
Files changed (42) hide show
  1. package/dist/evidence/interaction_evidence.d.ts +46 -0
  2. package/dist/evidence/interaction_evidence.d.ts.map +1 -0
  3. package/dist/evidence/interaction_evidence.js +91 -0
  4. package/dist/evidence/interaction_evidence.js.map +1 -0
  5. package/dist/evidence/runtime_log_scan.d.ts.map +1 -1
  6. package/dist/evidence/runtime_log_scan.js +10 -0
  7. package/dist/evidence/runtime_log_scan.js.map +1 -1
  8. package/dist/index.js +28 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/runners/app_launcher.d.ts +47 -0
  11. package/dist/runners/app_launcher.d.ts.map +1 -0
  12. package/dist/runners/app_launcher.js +300 -0
  13. package/dist/runners/app_launcher.js.map +1 -0
  14. package/dist/runners/cli_auth.d.ts +35 -0
  15. package/dist/runners/cli_auth.d.ts.map +1 -0
  16. package/dist/runners/cli_auth.js +127 -0
  17. package/dist/runners/cli_auth.js.map +1 -0
  18. package/dist/runners/journey_to_maestro.d.ts +31 -0
  19. package/dist/runners/journey_to_maestro.d.ts.map +1 -0
  20. package/dist/runners/journey_to_maestro.js +101 -0
  21. package/dist/runners/journey_to_maestro.js.map +1 -0
  22. package/dist/runners/maestro_generator.d.ts +5 -1
  23. package/dist/runners/maestro_generator.d.ts.map +1 -1
  24. package/dist/runners/maestro_generator.js +12 -4
  25. package/dist/runners/maestro_generator.js.map +1 -1
  26. package/dist/runners/mobile_app_id.d.ts +7 -0
  27. package/dist/runners/mobile_app_id.d.ts.map +1 -0
  28. package/dist/runners/mobile_app_id.js +100 -0
  29. package/dist/runners/mobile_app_id.js.map +1 -0
  30. package/dist/tools/diagnose.js +8 -0
  31. package/dist/tools/diagnose.js.map +1 -1
  32. package/dist/tools/gate_check.d.ts.map +1 -1
  33. package/dist/tools/gate_check.js +29 -0
  34. package/dist/tools/gate_check.js.map +1 -1
  35. package/dist/tools/run_journey.d.ts +14 -0
  36. package/dist/tools/run_journey.d.ts.map +1 -1
  37. package/dist/tools/run_journey.js +170 -6
  38. package/dist/tools/run_journey.js.map +1 -1
  39. package/dist/tools/verify.d.ts.map +1 -1
  40. package/dist/tools/verify.js +68 -2
  41. package/dist/tools/verify.js.map +1 -1
  42. 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): Promise<{
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,GACV,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAYnD;AAgDD,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
+ {"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
- const yamlLines = ["appId: ${APP_ID}", "---"];
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":"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"}
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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"}
@@ -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;AA6D9B,wBAAsB,YAAY,CAChC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,cAAc,EACtB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAwG1B;AA2ED,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,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"}
@@ -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",