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.
- package/dist/evidence/backend_verification.d.ts +27 -0
- package/dist/evidence/backend_verification.d.ts.map +1 -1
- package/dist/evidence/backend_verification.js +22 -0
- package/dist/evidence/backend_verification.js.map +1 -1
- 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 +54 -0
- package/dist/index.js.map +1 -1
- package/dist/runners/app_launcher.d.ts +41 -0
- package/dist/runners/app_launcher.d.ts.map +1 -0
- package/dist/runners/app_launcher.js +172 -0
- package/dist/runners/app_launcher.js.map +1 -0
- package/dist/runners/backend_runtime.d.ts +21 -0
- package/dist/runners/backend_runtime.d.ts.map +1 -1
- package/dist/runners/backend_runtime.js +157 -6
- package/dist/runners/backend_runtime.js.map +1 -1
- 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/device_probe.d.ts +41 -0
- package/dist/runners/device_probe.d.ts.map +1 -1
- package/dist/runners/device_probe.js +162 -1
- package/dist/runners/device_probe.js.map +1 -1
- package/dist/runners/interaction_engine.d.ts +59 -0
- package/dist/runners/interaction_engine.d.ts.map +1 -0
- package/dist/runners/interaction_engine.js +272 -0
- package/dist/runners/interaction_engine.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 +15 -1
- package/dist/tools/gate_check.js.map +1 -1
- package/dist/tools/plan_user_journey.d.ts +8 -0
- package/dist/tools/plan_user_journey.d.ts.map +1 -1
- package/dist/tools/plan_user_journey.js +20 -7
- package/dist/tools/plan_user_journey.js.map +1 -1
- package/dist/tools/run_journey.d.ts +69 -0
- package/dist/tools/run_journey.d.ts.map +1 -0
- package/dist/tools/run_journey.js +365 -0
- package/dist/tools/run_journey.js.map +1 -0
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +56 -2
- package/dist/tools/verify.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { JourneyTarget } from "./interaction_engine.js";
|
|
2
|
+
export interface AppLaunchHandle {
|
|
3
|
+
/** The app is now running on the target and ready to drive. */
|
|
4
|
+
launched: boolean;
|
|
5
|
+
/** How it was launched (for logs/diagnostics). */
|
|
6
|
+
method: string;
|
|
7
|
+
/** The device id / udid / desktop device the app was launched on. */
|
|
8
|
+
device?: string;
|
|
9
|
+
/** Why launch did not happen / failed (when launched===false). */
|
|
10
|
+
reason?: string;
|
|
11
|
+
/** Tail of launcher output when a build/launch fails — real signal for the agent. */
|
|
12
|
+
error_excerpt?: string;
|
|
13
|
+
/** Stop the launched app (quit `flutter run`, kill the process). Best-effort. */
|
|
14
|
+
stop?: () => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Map a journey target + host OS to the `flutter run -d <device>` device id.
|
|
18
|
+
* Mobile uses the booted serial/udid; desktop uses the host platform device.
|
|
19
|
+
*/
|
|
20
|
+
export declare function flutterDeviceId(target: JourneyTarget, bootedDevice?: string): string | null;
|
|
21
|
+
/** True when the directory is a Flutter project. */
|
|
22
|
+
export declare function isFlutterProject(cwd: string): boolean;
|
|
23
|
+
export interface LaunchAppOptions {
|
|
24
|
+
cwd: string;
|
|
25
|
+
target: JourneyTarget;
|
|
26
|
+
/** Booted device serial/udid from bootDevice (mobile). */
|
|
27
|
+
bootedDevice?: string;
|
|
28
|
+
/** Where to tee launcher stdout/stderr (best-effort). */
|
|
29
|
+
logPath?: string;
|
|
30
|
+
/** Max time to wait for the app to come up (build can be slow). */
|
|
31
|
+
readyTimeoutMs?: number;
|
|
32
|
+
/** Optional extra args (flavor/target/dart-define). */
|
|
33
|
+
extraArgs?: string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Launch the app for an interactive journey. Returns a handle whose `stop()`
|
|
37
|
+
* quits the app. Only the Flutter path actually builds+launches today; native
|
|
38
|
+
* mobile degrades to a directive (launched:false).
|
|
39
|
+
*/
|
|
40
|
+
export declare function launchApp(opts: LaunchAppOptions): Promise<AppLaunchHandle>;
|
|
41
|
+
//# sourceMappingURL=app_launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app_launcher.d.ts","sourceRoot":"","sources":["../../src/runners/app_launcher.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAUD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY3F;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8BhF"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* app_launcher — actually OPEN the app under test for the deep-E2E executor.
|
|
3
|
+
*
|
|
4
|
+
* Booting a simulator/emulator (device_probe.bootDevice) is NOT enough: a blank
|
|
5
|
+
* booted device has no app running, so there is nothing to screenshot or drive.
|
|
6
|
+
* This module performs the missing step — it BUILDS + INSTALLS + LAUNCHES the
|
|
7
|
+
* app on the resolved target so the journey has a live UI to interact with.
|
|
8
|
+
*
|
|
9
|
+
* Flutter is the primary path: `flutter run -d <device>` builds, installs, and
|
|
10
|
+
* launches on the booted emulator/simulator (or desktop), and stays attached so
|
|
11
|
+
* we can quit it cleanly afterwards. A build/launch FAILURE here is real,
|
|
12
|
+
* valuable signal ("the app doesn't even start"), surfaced as launched:false
|
|
13
|
+
* with the error tail rather than swallowed.
|
|
14
|
+
*
|
|
15
|
+
* Native iOS/Android (no Flutter) build+install is project-specific (schemes,
|
|
16
|
+
* flavors, signing); for those we degrade to launched:false + a clear directive
|
|
17
|
+
* so the agent launches the app, instead of silently driving a blank screen.
|
|
18
|
+
*
|
|
19
|
+
* Never throws; always returns a handle (with a best-effort stop()).
|
|
20
|
+
*/
|
|
21
|
+
import { spawn } from "child_process";
|
|
22
|
+
import { existsSync } from "fs";
|
|
23
|
+
import { join } from "path";
|
|
24
|
+
import { platform } from "os";
|
|
25
|
+
import { checkToolAvailable } from "./base.js";
|
|
26
|
+
/** Output lines that mean the Flutter app finished launching and is live. */
|
|
27
|
+
const FLUTTER_READY = /(Flutter run key commands|Dart VM Service is listening|VM Service|DevTools|is being served at|Syncing files to device|Application finished|Hot reload|Flutter DevTools|✓ +Built)/i;
|
|
28
|
+
/** Output lines that mean the Flutter build/launch FAILED (don't keep waiting). */
|
|
29
|
+
const FLUTTER_FAILED = /(Gradle task assemble\w+ failed|Could not build|Build failed|Error launching application|No supported devices|FAILURE: Build failed|Module '[^']+' not found|The Xcode build|Encountered error while building|Error: .*\.dart:|Target .* failed|Exception:)/i;
|
|
30
|
+
/**
|
|
31
|
+
* Map a journey target + host OS to the `flutter run -d <device>` device id.
|
|
32
|
+
* Mobile uses the booted serial/udid; desktop uses the host platform device.
|
|
33
|
+
*/
|
|
34
|
+
export function flutterDeviceId(target, bootedDevice) {
|
|
35
|
+
if (target === "android_emulator" || target === "ios_simulator") {
|
|
36
|
+
return bootedDevice ?? null;
|
|
37
|
+
}
|
|
38
|
+
if (target === "desktop") {
|
|
39
|
+
const os = platform();
|
|
40
|
+
if (os === "darwin")
|
|
41
|
+
return "macos";
|
|
42
|
+
if (os === "win32")
|
|
43
|
+
return "windows";
|
|
44
|
+
return "linux";
|
|
45
|
+
}
|
|
46
|
+
if (target === "browser")
|
|
47
|
+
return "chrome";
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
/** True when the directory is a Flutter project. */
|
|
51
|
+
export function isFlutterProject(cwd) {
|
|
52
|
+
return existsSync(join(cwd, "pubspec.yaml"));
|
|
53
|
+
}
|
|
54
|
+
const DEFAULT_READY_TIMEOUT_MS = 240_000; // cold build + install can take minutes
|
|
55
|
+
/**
|
|
56
|
+
* Launch the app for an interactive journey. Returns a handle whose `stop()`
|
|
57
|
+
* quits the app. Only the Flutter path actually builds+launches today; native
|
|
58
|
+
* mobile degrades to a directive (launched:false).
|
|
59
|
+
*/
|
|
60
|
+
export async function launchApp(opts) {
|
|
61
|
+
const { cwd, target } = opts;
|
|
62
|
+
if (isFlutterProject(cwd)) {
|
|
63
|
+
return launchFlutter(opts);
|
|
64
|
+
}
|
|
65
|
+
// Native iOS / Android (no Flutter): building is project-specific. Be honest.
|
|
66
|
+
if (target === "ios_simulator") {
|
|
67
|
+
return {
|
|
68
|
+
launched: false,
|
|
69
|
+
method: "native-ios",
|
|
70
|
+
reason: "Native iOS app — CodeLoop can't reliably pick the scheme/signing to build+install. " +
|
|
71
|
+
"Build & launch it on the booted simulator (xcodebuild -scheme <S> -destination 'platform=iOS Simulator,name=<device>' build, then xcrun simctl install booted <App>.app && xcrun simctl launch booted <bundle-id>), then drive with codeloop_interact.",
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (target === "android_emulator") {
|
|
75
|
+
return {
|
|
76
|
+
launched: false,
|
|
77
|
+
method: "native-android",
|
|
78
|
+
reason: "Native Android app — build & install it on the booted emulator (./gradlew installDebug, then adb shell monkey -p <appId> 1), then drive with codeloop_interact.",
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
launched: false,
|
|
83
|
+
method: "unknown",
|
|
84
|
+
reason: `No launcher for target "${target}" on a non-Flutter project — launch the app manually, then drive with codeloop_interact.`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async function launchFlutter(opts) {
|
|
88
|
+
const { cwd, target } = opts;
|
|
89
|
+
const device = flutterDeviceId(target, opts.bootedDevice);
|
|
90
|
+
if (!device) {
|
|
91
|
+
return { launched: false, method: "flutter run", reason: `Could not resolve a flutter device id for target "${target}".` };
|
|
92
|
+
}
|
|
93
|
+
if (!(await checkToolAvailable("flutter"))) {
|
|
94
|
+
return {
|
|
95
|
+
launched: false,
|
|
96
|
+
method: "flutter run",
|
|
97
|
+
device,
|
|
98
|
+
reason: "flutter not on PATH — install the Flutter SDK to auto-launch the app, then drive with codeloop_interact.",
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const args = ["run", "-d", device, "--no-pub", ...(opts.extraArgs ?? [])];
|
|
102
|
+
const readyTimeoutMs = opts.readyTimeoutMs ?? DEFAULT_READY_TIMEOUT_MS;
|
|
103
|
+
let child;
|
|
104
|
+
try {
|
|
105
|
+
child = spawn("flutter", args, { cwd, stdio: ["pipe", "pipe", "pipe"], detached: false });
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
return { launched: false, method: "flutter run", device, reason: `Failed to spawn flutter run: ${e.message}` };
|
|
109
|
+
}
|
|
110
|
+
let buffer = "";
|
|
111
|
+
const onData = (d) => { buffer += d.toString(); if (buffer.length > 200_000)
|
|
112
|
+
buffer = buffer.slice(-100_000); };
|
|
113
|
+
child.stdout?.on("data", onData);
|
|
114
|
+
child.stderr?.on("data", onData);
|
|
115
|
+
const stop = async () => {
|
|
116
|
+
try {
|
|
117
|
+
// Ask `flutter run` to quit cleanly first (detaches + stops the app).
|
|
118
|
+
child.stdin?.write("q\n");
|
|
119
|
+
await new Promise((r) => setTimeout(r, 1500));
|
|
120
|
+
}
|
|
121
|
+
catch { /* ignore */ }
|
|
122
|
+
try {
|
|
123
|
+
if (child.pid && !child.killed) {
|
|
124
|
+
// Kill the whole process tree so the device-side app + tool exit.
|
|
125
|
+
if (platform() === "win32")
|
|
126
|
+
spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"]);
|
|
127
|
+
else
|
|
128
|
+
process.kill(-child.pid, "SIGKILL");
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
try {
|
|
133
|
+
child.kill("SIGKILL");
|
|
134
|
+
}
|
|
135
|
+
catch { /* ignore */ }
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
// Poll the captured output for ready / failure / process-exit / timeout.
|
|
139
|
+
const deadline = Date.now() + readyTimeoutMs;
|
|
140
|
+
let exited = false;
|
|
141
|
+
child.on("exit", () => { exited = true; });
|
|
142
|
+
while (Date.now() < deadline) {
|
|
143
|
+
if (FLUTTER_READY.test(buffer)) {
|
|
144
|
+
// Give the first frame a moment to render before we screenshot/drive.
|
|
145
|
+
await new Promise((r) => setTimeout(r, 2500));
|
|
146
|
+
return { launched: true, method: `flutter run -d ${device}`, device, stop };
|
|
147
|
+
}
|
|
148
|
+
if (FLUTTER_FAILED.test(buffer) || exited) {
|
|
149
|
+
await stop();
|
|
150
|
+
return {
|
|
151
|
+
launched: false,
|
|
152
|
+
method: `flutter run -d ${device}`,
|
|
153
|
+
device,
|
|
154
|
+
reason: exited
|
|
155
|
+
? "flutter run exited before the app came up — the app failed to build/launch on the device."
|
|
156
|
+
: "flutter run reported a build/launch error — the app does not start on the device.",
|
|
157
|
+
error_excerpt: buffer.split("\n").filter(Boolean).slice(-25).join("\n"),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
161
|
+
}
|
|
162
|
+
// Timed out waiting for the app to come up.
|
|
163
|
+
await stop();
|
|
164
|
+
return {
|
|
165
|
+
launched: false,
|
|
166
|
+
method: `flutter run -d ${device}`,
|
|
167
|
+
device,
|
|
168
|
+
reason: `App did not finish launching within ${Math.round(readyTimeoutMs / 1000)}s (slow build or stuck on the device).`,
|
|
169
|
+
error_excerpt: buffer.split("\n").filter(Boolean).slice(-25).join("\n"),
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=app_launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app_launcher.js","sourceRoot":"","sources":["../../src/runners/app_launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,33 @@ interface ResolvedBackend {
|
|
|
25
25
|
openapi_path?: string;
|
|
26
26
|
ready_timeout_ms: number;
|
|
27
27
|
source: "config" | "auto";
|
|
28
|
+
/** Framework hint, e.g. "firebase" — drives the Firestore schema branch. */
|
|
29
|
+
framework?: string;
|
|
28
30
|
}
|
|
29
31
|
export declare function resolveBackend(cwd: string, config: CodeLoopConfig): Promise<ResolvedBackend | null>;
|
|
30
32
|
/** Extract GET route paths from an OpenAPI/Swagger JSON document. */
|
|
31
33
|
export declare function extractGetRoutes(openapi: unknown): string[];
|
|
32
34
|
/** Declared status codes for GET on a path, per the OpenAPI doc. */
|
|
33
35
|
export declare function declaredStatusesForGet(openapi: unknown, path: string): number[];
|
|
36
|
+
export interface BackendTestTarget {
|
|
37
|
+
dir: string;
|
|
38
|
+
command: string;
|
|
39
|
+
argv: string[];
|
|
40
|
+
framework: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* PURE-ish: locate the backend's dedicated test suite. Focuses on a backend
|
|
44
|
+
* that lives in a SUBDIR (functions/, server/, api/, backend/) so we don't
|
|
45
|
+
* double-run the project-root suite (already covered by required_tests_pass).
|
|
46
|
+
* An explicit config.backend.test_command / test_dir always wins. Returns null
|
|
47
|
+
* when no backend test target exists (gate n/a).
|
|
48
|
+
*/
|
|
49
|
+
export declare function detectBackendTestTarget(cwd: string, cfg: NonNullable<CodeLoopConfig["backend"]> | undefined): BackendTestTarget | null;
|
|
50
|
+
/** Best-effort parse of pass/fail totals from common test-runner output. */
|
|
51
|
+
export declare function parseBackendTestCounts(output: string): {
|
|
52
|
+
total?: number;
|
|
53
|
+
failed?: number;
|
|
54
|
+
};
|
|
34
55
|
/**
|
|
35
56
|
* Run the full backend verification. Returns null when no backend is
|
|
36
57
|
* detected/configured (caller writes no evidence -> gates n/a). Never throws.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend_runtime.d.ts","sourceRoot":"","sources":["../../src/runners/backend_runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA8B3D,OAAO,KAAK,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"backend_runtime.d.ts","sourceRoot":"","sources":["../../src/runners/backend_runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA8B3D,OAAO,KAAK,EAAE,mBAAmB,EAAqD,MAAM,qCAAqC,CAAC;AAElI;;;;;;;;;;;;;;GAcG;AAEH,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsCzG;AAwGD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAW3D;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/E;AAsKD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,GACtD,iBAAiB,GAAG,IAAI,CAmB1B;AAyCD,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAyB1F;AAgCD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAwErC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawn } from "child_process";
|
|
2
|
-
import { appendFileSync, mkdirSync, existsSync, readdirSync } from "fs";
|
|
2
|
+
import { appendFileSync, mkdirSync, existsSync, readFileSync, readdirSync } from "fs";
|
|
3
3
|
import { join, dirname } from "path";
|
|
4
4
|
import { runCommand, checkToolAvailable } from "./base.js";
|
|
5
5
|
/**
|
|
@@ -32,6 +32,7 @@ export async function resolveBackend(cwd, config) {
|
|
|
32
32
|
openapi_path: cfg.openapi_path,
|
|
33
33
|
ready_timeout_ms: (cfg.ready_timeout_seconds ?? 60) * 1000,
|
|
34
34
|
source: "config",
|
|
35
|
+
framework: cfg.framework,
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
38
|
// Auto-detect path: guarded so a missing/old shared submodule yields "no
|
|
@@ -48,10 +49,12 @@ export async function resolveBackend(cwd, config) {
|
|
|
48
49
|
health_path: detected.health_path,
|
|
49
50
|
ready_log_pattern: detected.ready_log_pattern,
|
|
50
51
|
routes: [],
|
|
51
|
-
env: {},
|
|
52
|
+
env: detected.env ?? {},
|
|
53
|
+
// Firebase emulators take longer to spin up than a plain server.
|
|
52
54
|
openapi_path: cfg?.openapi_path,
|
|
53
|
-
ready_timeout_ms: (cfg?.ready_timeout_seconds ?? 60) * 1000,
|
|
55
|
+
ready_timeout_ms: (cfg?.ready_timeout_seconds ?? (detected.framework === "firebase" ? 120 : 60)) * 1000,
|
|
54
56
|
source: "auto",
|
|
57
|
+
framework: detected.framework,
|
|
55
58
|
};
|
|
56
59
|
}
|
|
57
60
|
function startServer(rb, cwd, logPath) {
|
|
@@ -198,9 +201,12 @@ async function runSmoke(rb, openapiRoutes) {
|
|
|
198
201
|
if (route === rb.health_path && status >= 200 && status < 300)
|
|
199
202
|
healthy = true;
|
|
200
203
|
}
|
|
201
|
-
// If no explicit health path, treat readiness (server bound + any 2xx/4xx) as
|
|
204
|
+
// If no explicit health path, treat readiness (server bound + any 2xx/4xx) as
|
|
205
|
+
// healthy. When there were no routes to probe at all (e.g. Firebase Functions
|
|
206
|
+
// emulator — endpoints are project-specific), readiness was already confirmed
|
|
207
|
+
// via the ready_log_pattern, so don't false-fail an empty probe set.
|
|
202
208
|
if (!rb.health_path)
|
|
203
|
-
healthy = probed.some((p) => p.status >= 200 && p.status < 500);
|
|
209
|
+
healthy = probed.length === 0 ? true : probed.some((p) => p.status >= 200 && p.status < 500);
|
|
204
210
|
const server_errors = probed.filter((p) => p.status >= 500).length;
|
|
205
211
|
return { healthy, probed, server_errors };
|
|
206
212
|
}
|
|
@@ -248,10 +254,33 @@ async function runApiContract(rb) {
|
|
|
248
254
|
}
|
|
249
255
|
async function runDbSchema(rb, cwd, config) {
|
|
250
256
|
const dbCfg = config.backend?.db;
|
|
251
|
-
const tool = dbCfg?.tool ?? autoDetectOrm(cwd);
|
|
257
|
+
const tool = dbCfg?.tool ?? (rb.framework === "firebase" ? "firebase" : autoDetectOrm(cwd));
|
|
252
258
|
if (!tool || tool === "none") {
|
|
253
259
|
return { applicable: false, applied: true, drift: false, detail: "No ORM/migration tool detected" };
|
|
254
260
|
}
|
|
261
|
+
// Firestore is schemaless — there are no migrations to drift. Instead we
|
|
262
|
+
// gate on the presence of the rules + indexes definitions so the project's
|
|
263
|
+
// security model and composite indexes are checked into source control.
|
|
264
|
+
if (tool === "firebase") {
|
|
265
|
+
const hasRules = existsSync(join(cwd, "firestore.rules"));
|
|
266
|
+
const hasIndexes = existsSync(join(cwd, "firestore.indexes.json"));
|
|
267
|
+
if (!hasRules) {
|
|
268
|
+
return {
|
|
269
|
+
applicable: true,
|
|
270
|
+
tool: "firebase",
|
|
271
|
+
applied: false,
|
|
272
|
+
drift: true,
|
|
273
|
+
detail: "Missing firestore.rules — Firestore defaults to locked/open rules. Add firestore.rules and reference it in firebase.json, then re-run codeloop_verify.",
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
applicable: true,
|
|
278
|
+
tool: "firebase",
|
|
279
|
+
applied: true,
|
|
280
|
+
drift: false,
|
|
281
|
+
detail: hasIndexes ? "firestore.rules + firestore.indexes.json present" : "firestore.rules present (no composite indexes declared — fine if unused)",
|
|
282
|
+
};
|
|
283
|
+
}
|
|
255
284
|
// Explicit override wins.
|
|
256
285
|
if (dbCfg?.drift_command) {
|
|
257
286
|
const r = await runCommand(dbCfg.drift_command.split(" ")[0], dbCfg.drift_command.split(" ").slice(1), cwd, undefined, rb.env, 120000);
|
|
@@ -298,6 +327,8 @@ async function runDbSchema(rb, cwd, config) {
|
|
|
298
327
|
}
|
|
299
328
|
}
|
|
300
329
|
function autoDetectOrm(cwd) {
|
|
330
|
+
if (existsSync(join(cwd, "firebase.json")) || existsSync(join(cwd, "firestore.rules")))
|
|
331
|
+
return "firebase";
|
|
301
332
|
if (existsSync(join(cwd, "manage.py")))
|
|
302
333
|
return "django";
|
|
303
334
|
if (existsSync(join(cwd, "alembic.ini")))
|
|
@@ -324,6 +355,125 @@ function autoDetectOrm(cwd) {
|
|
|
324
355
|
}
|
|
325
356
|
return "none";
|
|
326
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* PURE-ish: locate the backend's dedicated test suite. Focuses on a backend
|
|
360
|
+
* that lives in a SUBDIR (functions/, server/, api/, backend/) so we don't
|
|
361
|
+
* double-run the project-root suite (already covered by required_tests_pass).
|
|
362
|
+
* An explicit config.backend.test_command / test_dir always wins. Returns null
|
|
363
|
+
* when no backend test target exists (gate n/a).
|
|
364
|
+
*/
|
|
365
|
+
export function detectBackendTestTarget(cwd, cfg) {
|
|
366
|
+
if (cfg?.run_tests === false)
|
|
367
|
+
return null;
|
|
368
|
+
// Explicit override.
|
|
369
|
+
if (cfg?.test_command) {
|
|
370
|
+
const parts = cfg.test_command.split(" ").filter(Boolean);
|
|
371
|
+
return { dir: cfg.test_dir ?? ".", command: cfg.test_command, argv: parts, framework: cfg.framework ?? "config" };
|
|
372
|
+
}
|
|
373
|
+
const candidates = [cfg?.test_dir, "functions", "server", "api", "backend"].filter((d) => !!d);
|
|
374
|
+
for (const rel of candidates) {
|
|
375
|
+
const dir = join(cwd, rel);
|
|
376
|
+
if (!existsSync(dir))
|
|
377
|
+
continue;
|
|
378
|
+
const detected = detectTestCommandInDir(dir);
|
|
379
|
+
if (detected)
|
|
380
|
+
return { dir: rel, ...detected };
|
|
381
|
+
}
|
|
382
|
+
return null;
|
|
383
|
+
}
|
|
384
|
+
/** Detect a runnable test command inside a single directory. */
|
|
385
|
+
function detectTestCommandInDir(dir) {
|
|
386
|
+
// Node: package.json with a real test script.
|
|
387
|
+
const pkgPath = join(dir, "package.json");
|
|
388
|
+
if (existsSync(pkgPath)) {
|
|
389
|
+
try {
|
|
390
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
391
|
+
const testScript = pkg.scripts?.test;
|
|
392
|
+
if (testScript && !/no test specified/i.test(testScript)) {
|
|
393
|
+
return { command: "npm test --silent", argv: ["test", "--silent"], framework: "node" };
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
/* ignore */
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
// Python: pytest.
|
|
401
|
+
if (existsSync(join(dir, "pytest.ini")) || existsSync(join(dir, "tests")) || existsSync(join(dir, "conftest.py"))) {
|
|
402
|
+
return { command: "pytest -q", argv: ["-q"], framework: "pytest" };
|
|
403
|
+
}
|
|
404
|
+
// Go.
|
|
405
|
+
if (existsSync(join(dir, "go.mod"))) {
|
|
406
|
+
return { command: "go test ./...", argv: ["test", "./..."], framework: "go" };
|
|
407
|
+
}
|
|
408
|
+
// .NET test project.
|
|
409
|
+
try {
|
|
410
|
+
if (readdirSync(dir).some((f) => /\.csproj$/i.test(f))) {
|
|
411
|
+
return { command: "dotnet test", argv: ["test"], framework: "dotnet" };
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
catch {
|
|
415
|
+
/* ignore */
|
|
416
|
+
}
|
|
417
|
+
// Maven / Gradle.
|
|
418
|
+
if (existsSync(join(dir, "pom.xml")))
|
|
419
|
+
return { command: "mvn -q test", argv: ["-q", "test"], framework: "maven" };
|
|
420
|
+
if (existsSync(join(dir, "build.gradle")) || existsSync(join(dir, "build.gradle.kts"))) {
|
|
421
|
+
return { command: "./gradlew test", argv: ["test"], framework: "gradle" };
|
|
422
|
+
}
|
|
423
|
+
return null;
|
|
424
|
+
}
|
|
425
|
+
/** Best-effort parse of pass/fail totals from common test-runner output. */
|
|
426
|
+
export function parseBackendTestCounts(output) {
|
|
427
|
+
// Jest: "Tests: 1 failed, 9 passed, 10 total"
|
|
428
|
+
const jest = output.match(/Tests?:\s*(?:(\d+)\s+failed,\s*)?(?:(\d+)\s+passed,\s*)?(\d+)\s+total/i);
|
|
429
|
+
if (jest) {
|
|
430
|
+
const failed = jest[1] ? parseInt(jest[1], 10) : 0;
|
|
431
|
+
const total = parseInt(jest[3], 10);
|
|
432
|
+
return { total, failed };
|
|
433
|
+
}
|
|
434
|
+
// Mocha: "9 passing" / "1 failing"
|
|
435
|
+
const passing = output.match(/(\d+)\s+passing/i);
|
|
436
|
+
const failing = output.match(/(\d+)\s+failing/i);
|
|
437
|
+
if (passing || failing) {
|
|
438
|
+
const pass = passing ? parseInt(passing[1], 10) : 0;
|
|
439
|
+
const fail = failing ? parseInt(failing[1], 10) : 0;
|
|
440
|
+
return { total: pass + fail, failed: fail };
|
|
441
|
+
}
|
|
442
|
+
// pytest: "1 failed, 9 passed" or "10 passed"
|
|
443
|
+
const pyFailed = output.match(/(\d+)\s+failed/i);
|
|
444
|
+
const pyPassed = output.match(/(\d+)\s+passed/i);
|
|
445
|
+
if (pyFailed || pyPassed) {
|
|
446
|
+
const fail = pyFailed ? parseInt(pyFailed[1], 10) : 0;
|
|
447
|
+
const pass = pyPassed ? parseInt(pyPassed[1], 10) : 0;
|
|
448
|
+
return { total: pass + fail, failed: fail };
|
|
449
|
+
}
|
|
450
|
+
return {};
|
|
451
|
+
}
|
|
452
|
+
async function runBackendTests(cwd, cfg, env) {
|
|
453
|
+
const target = detectBackendTestTarget(cwd, cfg);
|
|
454
|
+
if (!target) {
|
|
455
|
+
return { applicable: false, passed: true, detail: "No dedicated backend test suite found." };
|
|
456
|
+
}
|
|
457
|
+
const dir = join(cwd, target.dir);
|
|
458
|
+
// Resolve the executable from the command's first token.
|
|
459
|
+
const bin = target.command.split(" ")[0];
|
|
460
|
+
if (!(await checkToolAvailable(bin))) {
|
|
461
|
+
return { applicable: false, passed: true, test_dir: target.dir, command: target.command, detail: `${bin} not installed — backend tests skipped (n/a).` };
|
|
462
|
+
}
|
|
463
|
+
const res = await runCommand(bin, target.argv, dir, undefined, env, 300_000);
|
|
464
|
+
const out = res.stdout + "\n" + res.stderr;
|
|
465
|
+
const counts = parseBackendTestCounts(out);
|
|
466
|
+
const passed = res.exit_code === 0 && (counts.failed ?? 0) === 0;
|
|
467
|
+
return {
|
|
468
|
+
applicable: true,
|
|
469
|
+
test_dir: target.dir,
|
|
470
|
+
command: target.command,
|
|
471
|
+
passed,
|
|
472
|
+
total: counts.total,
|
|
473
|
+
failed: counts.failed,
|
|
474
|
+
detail: passed ? `All backend tests passed (${target.framework}).` : out.slice(-600),
|
|
475
|
+
};
|
|
476
|
+
}
|
|
327
477
|
/**
|
|
328
478
|
* Run the full backend verification. Returns null when no backend is
|
|
329
479
|
* detected/configured (caller writes no evidence -> gates n/a). Never throws.
|
|
@@ -382,6 +532,7 @@ export async function runBackendVerification(cwd, config, logDir) {
|
|
|
382
532
|
base.smoke = await runSmoke(rb, openapiRoutes);
|
|
383
533
|
base.api_contract = contract;
|
|
384
534
|
base.db_schema = await runDbSchema(rb, cwd, config);
|
|
535
|
+
base.backend_tests = await runBackendTests(cwd, config.backend, rb.env);
|
|
385
536
|
return base;
|
|
386
537
|
}
|
|
387
538
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend_runtime.js","sourceRoot":"","sources":["../../src/runners/backend_runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend_runtime.js","sourceRoot":"","sources":["../../src/runners/backend_runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cli_auth — detect EXPIRED / MISSING provider-CLI logins and push the agent to
|
|
3
|
+
* re-authenticate so the rest of verification (backend emulators, remote logs,
|
|
4
|
+
* and the full visual journey) can proceed.
|
|
5
|
+
*
|
|
6
|
+
* When a developer's `firebase` / `gcloud` / `heroku` / … session has expired,
|
|
7
|
+
* an auto-detected backend (e.g. the Firebase Emulator Suite) can't start and
|
|
8
|
+
* remote-log pulls fail. That is NOT a code bug — it's a one-step auth fix. The
|
|
9
|
+
* right behaviour is to STOP guessing and tell the agent to run the exact login
|
|
10
|
+
* command in an interactive terminal so the USER can complete the browser
|
|
11
|
+
* sign-in, then re-run codeloop_verify and the visual journey.
|
|
12
|
+
*/
|
|
13
|
+
export interface CliAuthIssue {
|
|
14
|
+
/** Canonical CLI name, e.g. "firebase". */
|
|
15
|
+
cli: string;
|
|
16
|
+
/** Friendly label, e.g. "Firebase". */
|
|
17
|
+
label: string;
|
|
18
|
+
/** The exact interactive command to re-authenticate. */
|
|
19
|
+
login_command: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* PURE: scan CLI/log output for expired-auth signatures and return the set of
|
|
23
|
+
* providers that need re-authentication (deduped, in table order).
|
|
24
|
+
*/
|
|
25
|
+
export declare function detectExpiredCliAuth(text: string): CliAuthIssue[];
|
|
26
|
+
/** Look up a provider's interactive login command by CLI name. */
|
|
27
|
+
export declare function loginCommandFor(cli: string): string | null;
|
|
28
|
+
/**
|
|
29
|
+
* Build a HARD directive that pushes the agent to run the re-auth command(s) in
|
|
30
|
+
* an INTERACTIVE terminal so the user can complete sign-in, then re-run so the
|
|
31
|
+
* full verification (incl. visual journey) proceeds. `context` tunes the
|
|
32
|
+
* trailing instruction.
|
|
33
|
+
*/
|
|
34
|
+
export declare function buildCliAuthDirective(issues: CliAuthIssue[], context: "backend" | "remote-logs"): string;
|
|
35
|
+
//# sourceMappingURL=cli_auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli_auth.d.ts","sourceRoot":"","sources":["../../src/runners/cli_auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;CACvB;AAiFD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CASjE;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,SAAS,GAAG,aAAa,GACjC,MAAM,CAoBR"}
|