codeloop-mcp-server 0.1.74 → 0.1.76

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 (46) hide show
  1. package/dist/evidence/backend_verification.d.ts +27 -0
  2. package/dist/evidence/backend_verification.d.ts.map +1 -1
  3. package/dist/evidence/backend_verification.js +22 -0
  4. package/dist/evidence/backend_verification.js.map +1 -1
  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 +54 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/runners/app_launcher.d.ts +41 -0
  11. package/dist/runners/app_launcher.d.ts.map +1 -0
  12. package/dist/runners/app_launcher.js +172 -0
  13. package/dist/runners/app_launcher.js.map +1 -0
  14. package/dist/runners/backend_runtime.d.ts +21 -0
  15. package/dist/runners/backend_runtime.d.ts.map +1 -1
  16. package/dist/runners/backend_runtime.js +157 -6
  17. package/dist/runners/backend_runtime.js.map +1 -1
  18. package/dist/runners/cli_auth.d.ts +35 -0
  19. package/dist/runners/cli_auth.d.ts.map +1 -0
  20. package/dist/runners/cli_auth.js +127 -0
  21. package/dist/runners/cli_auth.js.map +1 -0
  22. package/dist/runners/device_probe.d.ts +41 -0
  23. package/dist/runners/device_probe.d.ts.map +1 -1
  24. package/dist/runners/device_probe.js +162 -1
  25. package/dist/runners/device_probe.js.map +1 -1
  26. package/dist/runners/interaction_engine.d.ts +59 -0
  27. package/dist/runners/interaction_engine.d.ts.map +1 -0
  28. package/dist/runners/interaction_engine.js +272 -0
  29. package/dist/runners/interaction_engine.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 +15 -1
  34. package/dist/tools/gate_check.js.map +1 -1
  35. package/dist/tools/plan_user_journey.d.ts +8 -0
  36. package/dist/tools/plan_user_journey.d.ts.map +1 -1
  37. package/dist/tools/plan_user_journey.js +20 -7
  38. package/dist/tools/plan_user_journey.js.map +1 -1
  39. package/dist/tools/run_journey.d.ts +69 -0
  40. package/dist/tools/run_journey.d.ts.map +1 -0
  41. package/dist/tools/run_journey.js +365 -0
  42. package/dist/tools/run_journey.js.map +1 -0
  43. package/dist/tools/verify.d.ts.map +1 -1
  44. package/dist/tools/verify.js +56 -2
  45. package/dist/tools/verify.js.map +1 -1
  46. package/package.json +2 -2
@@ -36,6 +36,26 @@ export interface DbSchema {
36
36
  drift: boolean;
37
37
  detail: string;
38
38
  }
39
+ /**
40
+ * The backend's OWN dedicated unit/integration test suite, run in detail.
41
+ * Distinct from the project root's test suite (handled by the existing
42
+ * required_tests_pass flow) — this targets a backend that lives in a subdir
43
+ * (functions/, server/, api/, a .csproj, …) or a separate test command.
44
+ */
45
+ export interface BackendTests {
46
+ /** A backend test target was found and run. false → n/a (passes trivially). */
47
+ applicable: boolean;
48
+ /** Directory the tests ran in (relative to project root). */
49
+ test_dir?: string;
50
+ /** The command executed, e.g. "npm test". */
51
+ command?: string;
52
+ /** All backend tests passed (exit 0). */
53
+ passed: boolean;
54
+ /** Parsed totals when available. */
55
+ total?: number;
56
+ failed?: number;
57
+ detail: string;
58
+ }
39
59
  export interface BackendVerification {
40
60
  generated_at: string;
41
61
  /** A backend was detected or configured. */
@@ -49,6 +69,7 @@ export interface BackendVerification {
49
69
  smoke?: BackendSmoke;
50
70
  api_contract?: ApiContract;
51
71
  db_schema?: DbSchema;
72
+ backend_tests?: BackendTests;
52
73
  /** Human-readable note (skip reason or failure detail). */
53
74
  reason?: string;
54
75
  }
@@ -60,5 +81,11 @@ export interface GateVerdict {
60
81
  }
61
82
  export declare function evaluateBackendSmokeGate(b: BackendVerification | null): GateVerdict;
62
83
  export declare function evaluateApiContractGate(b: BackendVerification | null): GateVerdict;
84
+ /**
85
+ * Verdict for the backend's own test suite. Feeds the required_tests_pass
86
+ * gate so "carried the tests in details" is true for backends-in-subdirs and
87
+ * Firebase Functions, not just the project-root suite. Applicable-or-n/a.
88
+ */
89
+ export declare function evaluateBackendTestsGate(b: BackendVerification | null): GateVerdict;
63
90
  export declare function evaluateDbSchemaGate(b: BackendVerification | null): GateVerdict;
64
91
  //# sourceMappingURL=backend_verification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend_verification.d.ts","sourceRoot":"","sources":["../../src/evidence/backend_verification.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAOtF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAQlF;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CA4BnF;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CAYlF;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CAkB/E"}
1
+ {"version":3,"file":"backend_verification.d.ts","sourceRoot":"","sources":["../../src/evidence/backend_verification.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAOtF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAQlF;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CA4BnF;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CAYlF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CAanF;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,WAAW,CAkB/E"}
@@ -69,6 +69,28 @@ export function evaluateApiContractGate(b) {
69
69
  }
70
70
  return { passed: true, reason: `API contract OK — ${c.checked} route(s) conform to ${c.schema_source ?? "schema"}` };
71
71
  }
72
+ /**
73
+ * Verdict for the backend's own test suite. Feeds the required_tests_pass
74
+ * gate so "carried the tests in details" is true for backends-in-subdirs and
75
+ * Firebase Functions, not just the project-root suite. Applicable-or-n/a.
76
+ */
77
+ export function evaluateBackendTestsGate(b) {
78
+ if (!b)
79
+ return { passed: true, reason: "No backend_verification.json (no backend run this cycle)" };
80
+ if (!b.detected)
81
+ return { passed: true, reason: "n/a — no backend detected/configured" };
82
+ const t = b.backend_tests;
83
+ if (!t || !t.applicable)
84
+ return { passed: true, reason: "n/a — no dedicated backend test suite found" };
85
+ if (!t.passed) {
86
+ const counts = t.total != null ? ` (${t.failed ?? "?"}/${t.total} failed)` : "";
87
+ return {
88
+ passed: false,
89
+ reason: `Backend test suite FAILED${counts} via \`${t.command ?? "test command"}\` in ${t.test_dir ?? "backend dir"}: ${t.detail.slice(0, 300)}. Fix the failing backend tests, then re-run codeloop_verify.`,
90
+ };
91
+ }
92
+ return { passed: true, reason: `Backend tests passed via \`${t.command ?? "test command"}\`${t.total != null ? ` (${t.total} test(s))` : ""}` };
93
+ }
72
94
  export function evaluateDbSchemaGate(b) {
73
95
  if (!b)
74
96
  return { passed: true, reason: "No backend_verification.json (no backend run this cycle)" };
@@ -1 +1 @@
1
- {"version":3,"file":"backend_verification.js","sourceRoot":"","sources":["../../src/evidence/backend_verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend_verification.js","sourceRoot":"","sources":["../../src/evidence/backend_verification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime_log_scan.d.ts","sourceRoot":"","sources":["../../src/evidence/runtime_log_scan.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAmCD,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASlD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,CAO5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAQxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,CAoBjG;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,WAAW,CAe5E"}
1
+ {"version":3,"file":"runtime_log_scan.d.ts","sourceRoot":"","sources":["../../src/evidence/runtime_log_scan.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AA6CD,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASlD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,CAO5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAQxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,CAoBjG;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,WAAW,CAe5E"}
@@ -29,6 +29,16 @@ const IGNORE_PATTERNS = [
29
29
  /errors?:\s*\[\]/i,
30
30
  /--- stderr ---/, // our own runCommand log delimiter
31
31
  /\$ /, // command echo line in our logs
32
+ // CLI auth / setup failures are an ENVIRONMENT problem (the developer needs
33
+ // to log in / install a tool), not a runtime fault in the app under test.
34
+ // Counting them would block the gate on `firebase login`, `gcloud auth`,
35
+ // `heroku login`, etc. — surfaced separately as a [CodeLoop ASK] setup note.
36
+ /credentials are no longer valid|--reauth\b/i,
37
+ /\b(?:firebase|gcloud|heroku|vercel|aws|fly|az|gh) (?:login|auth)\b/i,
38
+ /\bnot (?:authenticated|logged in)\b/i,
39
+ /\bplease (?:run|sign in|log ?in)\b/i,
40
+ /\bcommand not found\b|: not found$/i,
41
+ /failed to (?:list|retrieve) log entries/i,
32
42
  ];
33
43
  /** Scan a blob of log text and return offending lines. */
34
44
  export function scanLogText(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime_log_scan.js","sourceRoot":"","sources":["../../src/evidence/runtime_log_scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime_log_scan.js","sourceRoot":"","sources":["../../src/evidence/runtime_log_scan.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1797,6 +1797,60 @@ ai_substantive_prompts, upload_actions, datagrid_edits }, advice, discovered_int
1797
1797
  content: withInitHint([{ type: "text", text: JSON.stringify(result, null, 2) + driveDirective }]),
1798
1798
  };
1799
1799
  });
1800
+ server.tool("codeloop_run_journey", TOOL_BOOTSTRAP + `DEEP-E2E EXECUTOR — launch the app, drive a real user journey, and capture screenshots + video
1801
+ in ONE hands-free call. This is the autonomous counterpart to the manual
1802
+ plan→start_recording→interact→stop→replay sequence: CodeLoop does it for you.
1803
+
1804
+ What it does, in order:
1805
+ 1. REFUSES in audit/read-only mode (driving the app modifies its state).
1806
+ 2. Detects the target (browser / desktop / android_emulator / ios_simulator / Flutter) — overridable.
1807
+ 3. READY/LAUNCH per target: web → headed Playwright at e2e.web_url; desktop → launch evidence.target_app;
1808
+ Android/iOS → BOOT the emulator/simulator (reuses one already booted; honors e2e.android_avd /
1809
+ e2e.ios_device; opt out with e2e.boot_device:false). If a mobile device can't be booted it returns
1810
+ a copy-paste directive instead of failing.
1811
+ 4. Plans the journey (codeloop_plan_user_journey) — entity CRUD arcs + the AI-chatbox arc.
1812
+ 5. Starts a background video recording (best-effort).
1813
+ 6. DRIVES every deterministic step via the interaction engine (fill known fields, type the AI prompt +
1814
+ submit + read back / assert a non-empty reply), capturing a screenshot after each step.
1815
+ 7. Visits EVERY discovered screen (codeloop_discover_screens) and screenshots each.
1816
+ 8. Stops the recording and returns a directive to run codeloop_interaction_replay + visual_review +
1817
+ design_compare + gate_check.
1818
+
1819
+ Steps it can't resolve deterministically (ambiguous navigation, raw-coordinate targets, missing
1820
+ selectors) are returned as manual_followups for you to drive with codeloop_interact — the run never
1821
+ hangs or hard-fails on one element.
1822
+
1823
+ Cross-platform: works on Windows/macOS/Linux with Cursor or Claude Code, for web / desktop / Flutter /
1824
+ native iOS / native Android.
1825
+
1826
+ Returns: { status, target_type, booted, plan_summary, recording_id, video_path, steps[],
1827
+ screens_captured[], screenshots[], unsupported_count, manual_followups[], directive, notes[] }.`, {
1828
+ project_dir: z.string().optional().describe("Absolute path to the project root. Defaults to CODELOOP_PROJECT_DIR env var or auto-discovered project directory."),
1829
+ workspace_root: z.string().optional().describe("[Alias for project_dir]"),
1830
+ target_type: targetTypeSchema.optional().describe("Override the auto-detected interaction target. Accepts synonyms (web→browser, android→android_emulator, ios→ios_simulator, *_desktop→desktop)."),
1831
+ web_url: z.string().optional().describe("URL to open for browser targets (e.g. http://localhost:3000). Defaults to e2e.web_url from config. Start your dev server first."),
1832
+ max_duration_seconds: z.number().int().min(10).max(600).optional().describe("Max video recording length. Default 180s."),
1833
+ mode: z.string().optional().describe(AGENT_MODE_PARAM_DESC),
1834
+ }, async (params) => {
1835
+ const result = await withAuth(async () => {
1836
+ const cwd = resolveCwd(params);
1837
+ const { loadConfig } = await import("./config.js");
1838
+ const cfg = loadConfig(cwd);
1839
+ const { runJourney } = await import("./tools/run_journey.js");
1840
+ return runJourney({
1841
+ cwd,
1842
+ paramMode: params.mode,
1843
+ e2e: { ...cfg.e2e, web_url: params.web_url ?? cfg.e2e?.web_url },
1844
+ targetApp: cfg.evidence?.target_app,
1845
+ targetType: params.target_type,
1846
+ maxDurationSeconds: params.max_duration_seconds,
1847
+ });
1848
+ }, { tool: "codeloop_run_journey", cwd: resolveCwd(params), input: params });
1849
+ const directive = result && typeof result === "object" && "directive" in result ? `\n\n${result.directive}` : "";
1850
+ return {
1851
+ content: withInitHint([{ type: "text", text: JSON.stringify(result, null, 2) + directive }]),
1852
+ };
1853
+ });
1800
1854
  server.tool("codeloop_plan_change_journey", TOOL_BOOTSTRAP + `Build a per-change-entry interaction plan from the most recent change manifest (produced by
1801
1855
  codeloop_verify, 0.1.52 C1+C2). Where codeloop_plan_user_journey enumerates entity-level
1802
1856
  CRUD arcs across the WHOLE app, plan_change_journey is narrower: it only enumerates the