flakelab 0.1.1 → 0.1.3

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/README.md CHANGED
@@ -25,7 +25,7 @@ The default command starts one Playwright process and uses Playwright's native `
25
25
  and JSON reporter to classify every selected test as `no-failure-observed`, `mixed-outcomes`,
26
26
  `failed-every-run`, `skipped`, or `errored`. These labels describe only the bounded sample; they
27
27
  do not claim that a test is permanently stable. The human summary includes the 80% Wilson
28
- confidence intervalor the upper bound when no failure was observedand writes machine-readable evidence to
28
+ confidence interval-or the upper bound when no failure was observed-and writes machine-readable evidence to
29
29
  `.flakelab/runs/scan.json`. The artifact contains direct run totals, per-test identities,
30
30
  confidence bounds, and bounded failure-signature clusters. Each cluster records its observed
31
31
  rate, first and last attempt, a redacted representative reason, and up to three representative
@@ -130,7 +130,7 @@ npx flakelab@latest diagnose --report ./blob-report
130
130
 
131
131
  The command explains what was observed and writes `.flakelab/runs/diagnose.json` with the cheapest
132
132
  useful next experiment, its trial bound, an expected duration based on the local scan when
133
- available, required credentials, and the Solari estimateor an explicit statement that no
133
+ available, required credentials, and the Solari estimate-or an explicit statement that no
134
134
  reliable estimate is available. Local diagnosis never requests provider credentials.
135
135
 
136
136
  Continue only as far as the evidence justifies:
@@ -262,7 +262,7 @@ reproduces the failure. Probe shared accounts, records, ports, and other cross-t
262
262
  `--fault shared-state-interference --max-copies 4`; this overlaps repeated copies of the selected
263
263
  test through Playwright's supported `repeatEach` and worker controls. Both faults use matched-seed
264
264
  single-worker controls, are bounded to 16 workers or copies, require an independent 12-trial
265
- confirmation, and store the selected test pathnot a URL globas their artifact target.
265
+ confirmation, and store the selected test path-not a URL glob-as their artifact target.
266
266
  The local proxy and generated Playwright config are removed after every trial, including failed and
267
267
  interrupted tests. Solari repair proof consumes the same validated fault set as local replay.
268
268
  Revision bisect still rejects unsupported fault combinations explicitly rather than approximating
@@ -283,7 +283,7 @@ pnpm flakelab investigate tests/fixtures/flaky-checkout.spec.ts \
283
283
  The investigator uses the provider-neutral [Vercel AI SDK](https://ai-sdk.dev/docs/agents/overview)
284
284
  with Groq's [`qwen/qwen3.8-27b`](https://console.groq.com/docs/model/qwen/qwen3.8-27b)
285
285
  model. It makes two bounded model calls: one to propose competing hypotheses and a three-part
286
- experiment batch, and one to assess the resulting evidence. FlakeLabnot the modelexecutes
286
+ experiment batch, and one to assess the resulting evidence. FlakeLab-not the model-executes
287
287
  trials, calculates confidence, enforces budgets, and decides whether a causal claim is valid.
288
288
 
289
289
  The model receives only the selected test and at most eight local imported source files through
@@ -1,5 +1,5 @@
1
1
  import type { HelpTopic } from "./cli-command-help.js";
2
2
  import type { TerminalTheme } from "./ui/theme.js";
3
- export declare const VERSION = "0.1.1";
3
+ export declare const VERSION: string;
4
4
  export declare function mainHelpText(theme?: TerminalTheme): string;
5
5
  export declare function helpText(topic?: HelpTopic, theme?: TerminalTheme): string;
package/dist/cli-help.js CHANGED
@@ -1,47 +1,95 @@
1
+ import { readFileSync } from "node:fs";
1
2
  import { commandHelpText } from "./cli-command-help.js";
2
3
  import { labelColumn, TerminalDocument } from "./ui/document.js";
3
4
  import { PLAIN_THEME } from "./ui/theme.js";
4
- export const VERSION = "0.1.1";
5
+ function packageVersion() {
6
+ const manifest = readFileSync(new URL("../package.json", import.meta.url), "utf8");
7
+ const match = /"version"\s*:\s*"([^"]+)"/u.exec(manifest);
8
+ if (!match?.[1]) {
9
+ throw new Error("FlakeLab package version is missing");
10
+ }
11
+ return match[1];
12
+ }
13
+ export const VERSION = packageVersion();
5
14
  const DOCUMENTATION = "https://github.com/Astraque-Softwares/solari-cookbook/tree/main/projects/flakelab";
6
15
  const COMMAND_GROUPS = [
7
16
  {
8
17
  rows: [
9
18
  { label: "scan <target>", value: "Run a bounded stability scan" },
10
- { label: "analyze <blob-report>", value: "Triage an existing Playwright blob report" },
19
+ {
20
+ label: "analyze <blob-report>",
21
+ value: "Triage an existing Playwright blob report",
22
+ },
11
23
  { label: "doctor", value: "Check local readiness and credential safety" },
12
24
  ],
13
25
  title: "Observe",
14
26
  },
15
27
  {
16
28
  rows: [
17
- { label: "diagnose [test]", value: "Explain evidence and run the next bounded step" },
18
- { label: "discover <test>", value: "Minimize a reproducible causal fault" },
29
+ {
30
+ label: "diagnose [test]",
31
+ value: "Explain evidence and run the next bounded step",
32
+ },
33
+ {
34
+ label: "discover <test>",
35
+ value: "Minimize a reproducible causal fault",
36
+ },
19
37
  { label: "replay <reproducer>", value: "Verify a saved reproducer" },
20
- { label: "resume <diagnose.json>", value: "Continue a checkpointed diagnosis" },
38
+ {
39
+ label: "resume <diagnose.json>",
40
+ value: "Continue a checkpointed diagnosis",
41
+ },
21
42
  ],
22
43
  title: "Reproduce",
23
44
  },
24
45
  {
25
46
  rows: [
26
- { label: "investigate <test>", value: "Run the bounded Groq investigator" },
27
- { label: "repair <investigation>", value: "Prove a candidate repair in Solari" },
28
- { label: "prove <test>", value: "Run discover, investigate, repair, and report" },
29
- { label: "report <investigation>", value: "Build the portable evidence report" },
30
- { label: "bisect --good <rev>", value: "Locate the introducing commit in Solari" },
47
+ {
48
+ label: "investigate <test>",
49
+ value: "Run the bounded Groq investigator",
50
+ },
51
+ {
52
+ label: "repair <investigation>",
53
+ value: "Prove a candidate repair in Solari",
54
+ },
55
+ {
56
+ label: "prove <test>",
57
+ value: "Run discover, investigate, repair, and report",
58
+ },
59
+ {
60
+ label: "report <investigation>",
61
+ value: "Build the portable evidence report",
62
+ },
63
+ {
64
+ label: "bisect --good <rev>",
65
+ value: "Locate the introducing commit in Solari",
66
+ },
31
67
  ],
32
68
  title: "Explain and prove",
33
69
  },
34
70
  ];
35
71
  const WORKFLOWS = [
36
- { label: "Measure stability", value: "flakelab tests/checkout.spec.ts --runs 20" },
72
+ {
73
+ label: "Measure stability",
74
+ value: "flakelab tests/checkout.spec.ts --runs 20",
75
+ },
37
76
  { label: "Triage CI evidence", value: "flakelab analyze ./blob-report" },
38
- { label: "Find a trigger", value: "flakelab diagnose tests/checkout.spec.ts --discover" },
77
+ {
78
+ label: "Find a trigger",
79
+ value: "flakelab diagnose tests/checkout.spec.ts --discover",
80
+ },
39
81
  { label: "Prove a fix", value: "flakelab prove tests/checkout.spec.ts" },
40
82
  ];
41
83
  const EXIT_CODES = [
42
84
  { label: "0", value: "No failure observed" },
43
- { label: "1", value: "Mixed outcomes, failure in every run, or command error" },
44
- { label: "2", value: "Inconclusive scan caused by test or Playwright infrastructure" },
85
+ {
86
+ label: "1",
87
+ value: "Mixed outcomes, failure in every run, or command error",
88
+ },
89
+ {
90
+ label: "2",
91
+ value: "Inconclusive scan caused by test or Playwright infrastructure",
92
+ },
45
93
  ];
46
94
  const CREDENTIALS = [
47
95
  { label: "GROQ_API_KEY", value: "investigate, repair, prove" },
@@ -55,7 +103,7 @@ function appendCommands(document) {
55
103
  }
56
104
  export function mainHelpText(theme = PLAIN_THEME) {
57
105
  const document = new TerminalDocument(theme);
58
- document.banner(`FlakeLab ${VERSION} find and prove flaky Playwright tests`);
106
+ document.banner(`FlakeLab ${VERSION} - find and prove flaky Playwright tests`);
59
107
  document.section("Usage");
60
108
  document.command("flakelab <target> [scan options]");
61
109
  document.command("flakelab <command> [command options]");
@@ -63,8 +111,8 @@ export function mainHelpText(theme = PLAIN_THEME) {
63
111
  document.section("Common workflows").rows(WORKFLOWS);
64
112
  document.section("Exit codes").rows(EXIT_CODES);
65
113
  document.section("Credentials").rows(CREDENTIALS);
66
- document.note("Missing keys are requested through hidden, run-once terminal prompts and are never"
67
- + " passed to Playwright test processes.");
114
+ document.note("Missing keys are requested through hidden, run-once terminal prompts and are never" +
115
+ " passed to Playwright test processes.");
68
116
  document.section("More");
69
117
  document.command("flakelab <command> --help");
70
118
  document.note(DOCUMENTATION);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@ import { isAbsolute, relative, resolve, sep } from "node:path";
3
3
  import { portableProjectPath } from "../artifacts/paths.js";
4
4
  import { nextDiagnosisPhase, readDiagnosisCheckpoint, } from "../diagnosis/checkpoint.js";
5
5
  import { addDiagnosisUsage, analysisObservation, createDiagnosisContext, emptyObservation, emptyPaths, restoreDiagnosisContext, saveDiagnosis, scanObservation, } from "../diagnosis/run-state.js";
6
+ import { buildDiscoveryBudget, requestSolariProof, } from "../diagnosis/solari-handoff.js";
6
7
  import { formatDiagnosisSummary } from "../diagnosis/summary.js";
7
8
  import { redactText } from "../report/redaction.js";
8
9
  import { formatProviderBoundary } from "../ui/boundary.js";
9
10
  import { writeStderr, writeStdout } from "../ui/console.js";
10
11
  import { formatCount } from "../ui/format.js";
11
12
  import { stderrTheme, stdoutTheme } from "../ui/theme.js";
13
+ import { integerOption, positiveNumberOption, } from "./options.js";
12
14
  function shouldRunScan(target, report, wantsDiscovery) {
13
15
  if (!target) {
14
16
  return false;
@@ -295,6 +297,40 @@ async function continueDiagnosis(context) {
295
297
  }
296
298
  writeStdout(formatDiagnosisSummary(context.checkpoint, portableArtifactPath, stdoutTheme()));
297
299
  }
300
+ function discoveryBudget(context) {
301
+ const { checkpoint, values } = context;
302
+ return buildDiscoveryBudget({
303
+ concurrency: integerOption(values.concurrency, "concurrency"),
304
+ configuredSeconds: positiveNumberOption(values["max-seconds"], "max-seconds"),
305
+ elapsedMilliseconds: checkpoint.observation.elapsedMilliseconds,
306
+ observedRuns: integerOption(values.runs, "runs"),
307
+ plannedTrials: checkpoint.recommendation.plannedTrials,
308
+ });
309
+ }
310
+ async function offerSolariProof(context) {
311
+ const { target, values } = context;
312
+ if (!target) {
313
+ return;
314
+ }
315
+ if (values.repair) {
316
+ return;
317
+ }
318
+ const request = await requestSolariProof(values.source, discoveryBudget(context));
319
+ if (!request) {
320
+ return;
321
+ }
322
+ const { parseProveArguments } = await import("../proof/cli.js");
323
+ const args = [target, "--max-seconds", String(request.maxSeconds)];
324
+ for (const source of request.sources) {
325
+ args.push("--source", source);
326
+ }
327
+ if (values.open) {
328
+ args.push("--open");
329
+ }
330
+ const invocation = parseProveArguments(args);
331
+ const { prove } = await import("./prove.js");
332
+ await prove(invocation.target, invocation.options);
333
+ }
298
334
  export async function diagnose(target, values) {
299
335
  const projectRoot = process.cwd();
300
336
  const artifactPath = resolve(projectRoot, values.artifacts, "diagnose.json");
@@ -323,6 +359,7 @@ export async function diagnose(target, values) {
323
359
  throw error;
324
360
  }
325
361
  await continueDiagnosis(context);
362
+ await offerSolariProof(context);
326
363
  }
327
364
  export async function resumeDiagnosis(path) {
328
365
  const projectRoot = process.cwd();
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { formatProviderBoundary } from "../ui/boundary.js";
2
+ import { preflightProofCredentials } from "../proof/preflight.js";
2
3
  import { writeStderr } from "../ui/console.js";
3
4
  import { TerminalDocument } from "../ui/document.js";
4
5
  import { formatCount } from "../ui/format.js";
@@ -44,6 +45,7 @@ function announceCompletion(values) {
44
45
  }
45
46
  export async function prove(target, values) {
46
47
  announceBoundary(values);
48
+ await preflightProofCredentials(values["prompt-credentials"]);
47
49
  await discover(target, values);
48
50
  await replay(values.output, values);
49
51
  ensureSuccessfulStage("Reproducer replay");
@@ -1 +1 @@
1
- {"version":3,"file":"prove.js","sourceRoot":"","sources":["../../src/commands/prove.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prove.js","sourceRoot":"","sources":["../../src/commands/prove.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ type AskQuestion = (question: string) => Promise<string>;
2
+ interface SolariHandoffOptions {
3
+ ask?: AskQuestion;
4
+ environment?: NodeJS.ProcessEnv;
5
+ inputIsTTY?: boolean;
6
+ outputIsTTY?: boolean;
7
+ }
8
+ export interface DiscoveryBudget {
9
+ configuredSeconds: number;
10
+ estimatedSeconds: number;
11
+ recommendedSeconds: number;
12
+ }
13
+ export interface SolariProofRequest {
14
+ maxSeconds: number;
15
+ sources: string[];
16
+ }
17
+ interface DiscoveryBudgetInput {
18
+ concurrency: number;
19
+ configuredSeconds: number;
20
+ elapsedMilliseconds: number;
21
+ observedRuns: number;
22
+ plannedTrials: number;
23
+ }
24
+ export declare function buildDiscoveryBudget(input: DiscoveryBudgetInput): DiscoveryBudget;
25
+ export declare function requestSolariProof(approvedSources: string[], budget: DiscoveryBudget, options?: SolariHandoffOptions): Promise<SolariProofRequest | null>;
26
+ export {};
@@ -0,0 +1,66 @@
1
+ import { createInterface } from "node:readline/promises";
2
+ import { formatSeconds } from "../ui/format.js";
3
+ import { sanitizeLine } from "../ui/text.js";
4
+ export function buildDiscoveryBudget(input) {
5
+ const estimatedSeconds = Math.ceil(input.elapsedMilliseconds * input.plannedTrials
6
+ / input.observedRuns / input.concurrency / 1_000 / 60) * 60;
7
+ const recommendedSeconds = Math.ceil(estimatedSeconds * 1.2 / 60) * 60;
8
+ return {
9
+ configuredSeconds: input.configuredSeconds,
10
+ estimatedSeconds,
11
+ recommendedSeconds,
12
+ };
13
+ }
14
+ function interactive(options) {
15
+ const environment = options.environment ?? process.env;
16
+ return (options.inputIsTTY ?? Boolean(process.stdin.isTTY))
17
+ && (options.outputIsTTY ?? Boolean(process.stderr.isTTY))
18
+ && !environment.CI;
19
+ }
20
+ async function askInTerminal(question) {
21
+ const prompt = createInterface({ input: process.stdin, output: process.stderr });
22
+ try {
23
+ return await prompt.question(question);
24
+ }
25
+ finally {
26
+ prompt.close();
27
+ }
28
+ }
29
+ function accepted(answer) {
30
+ const normalized = answer.trim().toLowerCase();
31
+ return normalized === "y" || normalized === "yes";
32
+ }
33
+ function acceptedByDefault(answer) {
34
+ return answer.trim() === "" || accepted(answer);
35
+ }
36
+ export async function requestSolariProof(approvedSources, budget, options = {}) {
37
+ if (!interactive(options)) {
38
+ return null;
39
+ }
40
+ const ask = options.ask ?? askInTerminal;
41
+ if (!accepted(await ask("Use Solari to prove a candidate fix? [y/N] "))) {
42
+ return null;
43
+ }
44
+ if (!accepted(await ask("Use AI to investigate and generate the candidate? [y/N] "))) {
45
+ return null;
46
+ }
47
+ let sources = approvedSources;
48
+ if (sources.length === 0) {
49
+ const source = (await ask("Source file to approve for candidate changes (Enter to cancel): ")).trim();
50
+ if (!source) {
51
+ return null;
52
+ }
53
+ sources = [sanitizeLine(source)];
54
+ }
55
+ let maxSeconds = budget.configuredSeconds;
56
+ if (budget.estimatedSeconds > budget.configuredSeconds) {
57
+ const question = `Discovery is estimated at ${formatSeconds(budget.estimatedSeconds)}, `
58
+ + `above the ${formatSeconds(budget.configuredSeconds)} limit. Raise it to `
59
+ + `${formatSeconds(budget.recommendedSeconds)}? [Y/n] `;
60
+ if (acceptedByDefault(await ask(question))) {
61
+ maxSeconds = budget.recommendedSeconds;
62
+ }
63
+ }
64
+ return { maxSeconds, sources };
65
+ }
66
+ //# sourceMappingURL=solari-handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solari-handoff.js","sourceRoot":"","sources":["../../src/diagnosis/solari-handoff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CredentialProvider } from "../security/credentials.js";
2
+ type CredentialRequester = (provider: CredentialProvider, forcePrompt: boolean) => Promise<string>;
3
+ export declare function preflightProofCredentials(forcePrompt: boolean, request?: CredentialRequester): Promise<void>;
4
+ export {};
@@ -0,0 +1,9 @@
1
+ import { requireCredential } from "../security/credentials.js";
2
+ async function requestCredential(provider, forcePrompt) {
3
+ return requireCredential(provider, { forcePrompt });
4
+ }
5
+ export async function preflightProofCredentials(forcePrompt, request = requestCredential) {
6
+ await request("groq", forcePrompt);
7
+ await request("solari", forcePrompt);
8
+ }
9
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/proof/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAQ9D,KAAK,UAAU,iBAAiB,CAC9B,QAA4B,EAC5B,WAAoB;IAEpB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAoB,EACpB,UAA+B,iBAAiB;IAEhD,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,MAAM,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flakelab",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Find, reproduce, and prove fixes for flaky Playwright tests.",
5
5
  "type": "module",
6
6
  "license": "MIT",