flakelab 0.1.6 → 0.1.8

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/cli.js CHANGED
@@ -2,9 +2,11 @@ import { parseCliArguments } from "./cli-arguments.js";
2
2
  import { helpText, VERSION } from "./cli-help.js";
3
3
  import { writeStderr, writeStdout } from "./ui/console.js";
4
4
  import { TerminalDocument } from "./ui/document.js";
5
+ import { ProgressReporter } from "./ui/progress.js";
5
6
  import { stderrTheme, stdoutTheme } from "./ui/theme.js";
6
7
  const PROVIDER_COMMANDS = new Set([
7
8
  "bisect",
9
+ "diagnose",
8
10
  "investigate",
9
11
  "prove",
10
12
  "repair",
@@ -109,6 +111,7 @@ async function main() {
109
111
  await runCommand(invocation);
110
112
  }
111
113
  catch (error) {
114
+ ProgressReporter.failActive();
112
115
  let message = "FlakeLab failed";
113
116
  if (error instanceof Error) {
114
117
  message = providerCommand ? await providerErrorMessage(error) : error.message;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -600,9 +600,9 @@ export declare const trialOutcomeSchema: z.ZodObject<{
600
600
  path: z.ZodString;
601
601
  }, z.core.$strip>>>;
602
602
  status: z.ZodEnum<{
603
+ failed: "failed";
603
604
  error: "error";
604
605
  passed: "passed";
605
- failed: "failed";
606
606
  }>;
607
607
  durationMs: z.ZodNumber;
608
608
  exitCode: z.ZodNullable<z.ZodNumber>;
@@ -925,9 +925,9 @@ export declare const runEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
925
925
  path: z.ZodString;
926
926
  }, z.core.$strip>>>;
927
927
  status: z.ZodEnum<{
928
+ failed: "failed";
928
929
  error: "error";
929
930
  passed: "passed";
930
- failed: "failed";
931
931
  }>;
932
932
  durationMs: z.ZodNumber;
933
933
  exitCode: z.ZodNullable<z.ZodNumber>;
@@ -3,19 +3,8 @@ import { z } from "zod";
3
3
  import { evaluateExperiment } from "../discovery/evaluate.js";
4
4
  import { InvestigationBudget } from "./budget.js";
5
5
  import { InvestigationLedger } from "./ledger.js";
6
+ import { generateValidInvestigationPlan, investigationPlanSchema, } from "./planning.js";
6
7
  import { readSafeTestContext } from "./safe-source.js";
7
- import { experimentConditionSchema } from "./schema.js";
8
- const plannedHypothesisSchema = z.object({
9
- statement: z.string().min(8).max(500),
10
- prediction: z.string().min(8).max(500),
11
- });
12
- const investigationPlanSchema = z.object({
13
- hypotheses: z.array(plannedHypothesisSchema).min(2).max(3),
14
- experiments: z.array(z.object({
15
- hypothesisIndex: z.number().int().nonnegative(),
16
- condition: experimentConditionSchema,
17
- })).length(3),
18
- });
19
8
  const assessmentItemSchema = z.object({
20
9
  hypothesisId: z.string().regex(/^H\d+$/u),
21
10
  status: z.enum(["rejected", "confirmed"]),
@@ -46,6 +35,13 @@ function estimatedCost(inputTokens, outputTokens, options) {
46
35
  return (inputTokens * options.inputUsdPerMillion
47
36
  + outputTokens * options.outputUsdPerMillion) / 1_000_000;
48
37
  }
38
+ function enforceCostBudget(inputTokens, outputTokens, options, budget) {
39
+ const cost = estimatedCost(inputTokens, outputTokens, options);
40
+ if (cost > budget.maxCostUsd()) {
41
+ throw new Error(`Investigation cost $${cost.toFixed(4)} exceeded its configured budget`);
42
+ }
43
+ return cost;
44
+ }
49
45
  function planningPrompt(test, sources, maximumDelayMs) {
50
46
  return [
51
47
  "You are planning a causal investigation of a flaky Playwright test.",
@@ -113,32 +109,6 @@ function applyAssessment(state, assessment) {
113
109
  }
114
110
  state.ledger.conclude(assessment.conclusionHypothesisId, assessment.conclusion, assessment.conclusionEvidenceIds);
115
111
  }
116
- function validatePlan(plan, options) {
117
- if (plan.experiments.length > options.maxExperiments) {
118
- throw new Error("Model proposed more experiments than the configured budget");
119
- }
120
- if (plan.experiments.some((entry) => entry.hypothesisIndex >= plan.hypotheses.length)) {
121
- throw new Error("Model proposed an experiment for a missing hypothesis");
122
- }
123
- const coveredHypotheses = new Set(plan.experiments.map((entry) => entry.hypothesisIndex));
124
- if (plan.hypotheses.some((_hypothesis, index) => !coveredHypotheses.has(index))) {
125
- throw new Error("Every proposed hypothesis must receive an experiment");
126
- }
127
- if (plan.experiments.some((entry) => (entry.condition.kind === "network-delay" || entry.condition.kind === "resource-loading-delay"
128
- || entry.condition.kind === "startup-event-delay"
129
- || entry.condition.kind === "storage-state-delay")
130
- && entry.condition.delayMs > options.maximumDelayMs)) {
131
- throw new Error("Model proposed a delay above the configured maximum");
132
- }
133
- if (plan.experiments.some((entry) => entry.condition.kind === "event-loop-stall"
134
- && entry.condition.durationMs > options.maximumDelayMs)) {
135
- throw new Error("Model proposed an event-loop stall above the configured maximum");
136
- }
137
- const kinds = new Set(plan.experiments.map((entry) => entry.condition.kind));
138
- if (!kinds.has("baseline") || kinds.size !== 3) {
139
- throw new Error("Investigation plan must contain a baseline and two distinct interventions");
140
- }
141
- }
142
112
  export async function runInvestigation(options) {
143
113
  if (options.maxSteps < 2) {
144
114
  throw new Error("Investigation requires a budget of two model steps");
@@ -147,18 +117,38 @@ export async function runInvestigation(options) {
147
117
  const timeoutSignal = AbortSignal.timeout(options.maxSeconds * 1_000);
148
118
  const signal = options.signal ? AbortSignal.any([options.signal, timeoutSignal]) : timeoutSignal;
149
119
  const sources = await readSafeTestContext(options.projectRoot, options.test);
150
- const planResult = await generateText({
151
- model: options.model,
152
- output: Output.object({ schema: investigationPlanSchema }),
153
- prompt: planningPrompt(options.test, sources, options.maximumDelayMs),
154
- maxOutputTokens: options.outputTokenLimit,
155
- maxRetries: 2,
156
- timeout: { totalMs: budget.remainingMs() },
157
- abortSignal: signal,
158
- temperature: 0.2,
120
+ const planResult = await generateValidInvestigationPlan({
121
+ generate: async (prompt, temperature) => {
122
+ const result = await generateText({
123
+ model: options.model,
124
+ output: Output.object({ schema: investigationPlanSchema }),
125
+ prompt,
126
+ maxOutputTokens: options.outputTokenLimit,
127
+ maxRetries: 2,
128
+ timeout: { totalMs: budget.remainingMs() },
129
+ abortSignal: signal,
130
+ temperature,
131
+ });
132
+ return {
133
+ output: result.output,
134
+ usage: {
135
+ inputTokens: result.usage.inputTokens ?? 0,
136
+ outputTokens: result.usage.outputTokens ?? 0,
137
+ },
138
+ };
139
+ },
140
+ initialPrompt: planningPrompt(options.test, sources, options.maximumDelayMs),
141
+ maxAttempts: Math.min(2, options.maxSteps - 1),
142
+ rules: {
143
+ maxExperiments: options.maxExperiments,
144
+ maximumDelayMs: options.maximumDelayMs,
145
+ },
159
146
  });
160
- const plan = planResult.output;
161
- validatePlan(plan, options);
147
+ const plan = planResult.plan;
148
+ let modelSteps = planResult.generations.length;
149
+ const planningInputTokens = planResult.generations.reduce((total, result) => total + result.usage.inputTokens, 0);
150
+ const planningOutputTokens = planResult.generations.reduce((total, result) => total + result.usage.outputTokens, 0);
151
+ enforceCostBudget(planningInputTokens, planningOutputTokens, options, budget);
162
152
  plan.experiments.forEach(() => {
163
153
  budget.reserveExperiment(options.trialsPerExperiment);
164
154
  });
@@ -181,12 +171,13 @@ export async function runInvestigation(options) {
181
171
  abortSignal: signal,
182
172
  temperature: 0.2,
183
173
  });
174
+ modelSteps += 1;
184
175
  const assessmentResults = [assessmentResult];
185
176
  try {
186
177
  applyAssessment(state, assessmentResult.output);
187
178
  }
188
179
  catch (error) {
189
- if (options.maxSteps < 3) {
180
+ if (modelSteps >= options.maxSteps) {
190
181
  throw error;
191
182
  }
192
183
  const validationError = error instanceof Error ? error.message : "invalid evidence assessment";
@@ -204,12 +195,9 @@ export async function runInvestigation(options) {
204
195
  state = createLedgerState(plan, results);
205
196
  applyAssessment(state, repairResult.output);
206
197
  }
207
- const inputTokens = (planResult.usage.inputTokens ?? 0) + assessmentResults.reduce((total, result) => total + (result.usage.inputTokens ?? 0), 0);
208
- const outputTokens = (planResult.usage.outputTokens ?? 0) + assessmentResults.reduce((total, result) => total + (result.usage.outputTokens ?? 0), 0);
209
- const cost = estimatedCost(inputTokens, outputTokens, options);
210
- if (cost > budget.maxCostUsd()) {
211
- throw new Error(`Investigation cost $${cost.toFixed(4)} exceeded its configured budget`);
212
- }
198
+ const inputTokens = planningInputTokens + assessmentResults.reduce((total, result) => total + (result.usage.inputTokens ?? 0), 0);
199
+ const outputTokens = planningOutputTokens + assessmentResults.reduce((total, result) => total + (result.usage.outputTokens ?? 0), 0);
200
+ const cost = enforceCostBudget(inputTokens, outputTokens, options, budget);
213
201
  return state.ledger.buildReport(options.test, options.modelId, sources.map((source) => source.path), {
214
202
  inputTokens,
215
203
  outputTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/investigator/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/investigator/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { z } from "zod";
2
+ export declare const investigationPlanSchema: z.ZodObject<{
3
+ hypotheses: z.ZodArray<z.ZodObject<{
4
+ statement: z.ZodString;
5
+ prediction: z.ZodString;
6
+ }, z.core.$strip>>;
7
+ experiments: z.ZodArray<z.ZodObject<{
8
+ hypothesisIndex: z.ZodNumber;
9
+ condition: z.ZodDiscriminatedUnion<[z.ZodObject<{
10
+ kind: z.ZodLiteral<"baseline">;
11
+ }, z.core.$strip>, z.ZodObject<{
12
+ kind: z.ZodLiteral<"animation-speed">;
13
+ rate: z.ZodNumber;
14
+ }, z.core.$strip>, z.ZodObject<{
15
+ kind: z.ZodLiteral<"auth-cookie-expiry">;
16
+ cookieName: z.ZodString;
17
+ }, z.core.$strip>, z.ZodObject<{
18
+ kind: z.ZodLiteral<"clock-jump">;
19
+ jumpAfterMs: z.ZodNumber;
20
+ offsetMs: z.ZodNumber;
21
+ }, z.core.$strip>, z.ZodObject<{
22
+ kind: z.ZodLiteral<"event-loop-stall">;
23
+ durationMs: z.ZodNumber;
24
+ startAfterMs: z.ZodNumber;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ kind: z.ZodLiteral<"network-delay">;
27
+ delayMs: z.ZodNumber;
28
+ }, z.core.$strip>, z.ZodObject<{
29
+ kind: z.ZodLiteral<"locale">;
30
+ locale: z.ZodString;
31
+ }, z.core.$strip>, z.ZodObject<{
32
+ kind: z.ZodLiteral<"request-failure">;
33
+ statusCode: z.ZodNumber;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ kind: z.ZodLiteral<"reduced-motion">;
36
+ }, z.core.$strip>, z.ZodObject<{
37
+ kind: z.ZodLiteral<"response-truncation">;
38
+ removeBytes: z.ZodNumber;
39
+ }, z.core.$strip>, z.ZodObject<{
40
+ kind: z.ZodLiteral<"response-duplication">;
41
+ duplicateBytes: z.ZodNumber;
42
+ }, z.core.$strip>, z.ZodObject<{
43
+ kind: z.ZodLiteral<"response-reordering">;
44
+ holdMs: z.ZodNumber;
45
+ }, z.core.$strip>, z.ZodObject<{
46
+ kind: z.ZodLiteral<"resource-loading-delay">;
47
+ delayMs: z.ZodNumber;
48
+ resourceType: z.ZodEnum<{
49
+ script: "script";
50
+ document: "document";
51
+ font: "font";
52
+ image: "image";
53
+ stylesheet: "stylesheet";
54
+ }>;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ kind: z.ZodLiteral<"startup-event-delay">;
57
+ delayMs: z.ZodNumber;
58
+ event: z.ZodEnum<{
59
+ "dom-content-loaded": "dom-content-loaded";
60
+ load: "load";
61
+ }>;
62
+ }, z.core.$strip>, z.ZodObject<{
63
+ kind: z.ZodLiteral<"storage-state-delay">;
64
+ delayMs: z.ZodNumber;
65
+ key: z.ZodString;
66
+ storage: z.ZodEnum<{
67
+ "local-storage": "local-storage";
68
+ "session-storage": "session-storage";
69
+ }>;
70
+ }, z.core.$strip>, z.ZodObject<{
71
+ kind: z.ZodLiteral<"timezone">;
72
+ timezoneId: z.ZodString;
73
+ }, z.core.$strip>, z.ZodObject<{
74
+ kind: z.ZodLiteral<"viewport">;
75
+ height: z.ZodNumber;
76
+ width: z.ZodNumber;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ kind: z.ZodLiteral<"worker-pressure">;
79
+ workers: z.ZodNumber;
80
+ }, z.core.$strip>, z.ZodObject<{
81
+ copies: z.ZodNumber;
82
+ kind: z.ZodLiteral<"shared-state-interference">;
83
+ }, z.core.$strip>], "kind">;
84
+ }, z.core.$strip>>;
85
+ }, z.core.$strip>;
86
+ export type InvestigationPlan = z.infer<typeof investigationPlanSchema>;
87
+ export interface PlanGeneration {
88
+ output: InvestigationPlan;
89
+ usage: {
90
+ inputTokens: number;
91
+ outputTokens: number;
92
+ };
93
+ }
94
+ interface PlanRules {
95
+ maxExperiments: number;
96
+ maximumDelayMs: number;
97
+ }
98
+ interface GenerateValidPlanOptions {
99
+ generate: (prompt: string, temperature: number) => Promise<PlanGeneration>;
100
+ initialPrompt: string;
101
+ maxAttempts: number;
102
+ rules: PlanRules;
103
+ }
104
+ export interface ValidPlanResult {
105
+ generations: PlanGeneration[];
106
+ plan: InvestigationPlan;
107
+ }
108
+ export declare function validateInvestigationPlan(plan: InvestigationPlan, rules: PlanRules): void;
109
+ export declare function generateValidInvestigationPlan(options: GenerateValidPlanOptions): Promise<ValidPlanResult>;
110
+ export {};
@@ -0,0 +1,78 @@
1
+ import { z } from "zod";
2
+ import { experimentConditionSchema } from "./schema.js";
3
+ const plannedHypothesisSchema = z.object({
4
+ statement: z.string().min(8).max(500),
5
+ prediction: z.string().min(8).max(500),
6
+ });
7
+ export const investigationPlanSchema = z.object({
8
+ hypotheses: z.array(plannedHypothesisSchema).min(2).max(3),
9
+ experiments: z.array(z.object({
10
+ hypothesisIndex: z.number().int().nonnegative(),
11
+ condition: experimentConditionSchema,
12
+ })).length(3),
13
+ });
14
+ function conditionKinds(plan) {
15
+ return plan.experiments.map((entry) => entry.condition.kind);
16
+ }
17
+ export function validateInvestigationPlan(plan, rules) {
18
+ if (plan.experiments.length > rules.maxExperiments) {
19
+ throw new Error("Model proposed more experiments than the configured budget");
20
+ }
21
+ if (plan.experiments.some((entry) => entry.hypothesisIndex >= plan.hypotheses.length)) {
22
+ throw new Error("Model proposed an experiment for a missing hypothesis");
23
+ }
24
+ const coveredHypotheses = new Set(plan.experiments.map((entry) => entry.hypothesisIndex));
25
+ if (plan.hypotheses.some((_hypothesis, index) => !coveredHypotheses.has(index))) {
26
+ throw new Error("Every proposed hypothesis must receive an experiment");
27
+ }
28
+ const excessiveDelay = plan.experiments.some((entry) => (entry.condition.kind === "network-delay"
29
+ || entry.condition.kind === "resource-loading-delay"
30
+ || entry.condition.kind === "startup-event-delay"
31
+ || entry.condition.kind === "storage-state-delay")
32
+ && entry.condition.delayMs > rules.maximumDelayMs);
33
+ if (excessiveDelay) {
34
+ throw new Error("Model proposed a delay above the configured maximum");
35
+ }
36
+ const excessiveStall = plan.experiments.some((entry) => entry.condition.kind === "event-loop-stall"
37
+ && entry.condition.durationMs > rules.maximumDelayMs);
38
+ if (excessiveStall) {
39
+ throw new Error("Model proposed an event-loop stall above the configured maximum");
40
+ }
41
+ const kinds = conditionKinds(plan);
42
+ if (!kinds.includes("baseline") || new Set(kinds).size !== 3) {
43
+ throw new Error("Investigation plan must contain one baseline and two distinct interventions;"
44
+ + ` received ${kinds.join(", ")}`);
45
+ }
46
+ }
47
+ function repairPrompt(initialPrompt, invalidPlan, validationError) {
48
+ return [
49
+ initialPrompt,
50
+ "Your previous plan passed the output schema but failed deterministic validation.",
51
+ `Validation error: ${validationError}`,
52
+ "Previous invalid plan:",
53
+ JSON.stringify(invalidPlan, null, 2),
54
+ "Return one corrected plan with exactly one baseline and two different intervention kinds.",
55
+ "Keep exactly three experiments, cover every hypothesis, and do not repeat a condition kind.",
56
+ ].join("\n");
57
+ }
58
+ export async function generateValidInvestigationPlan(options) {
59
+ const generations = [];
60
+ let prompt = options.initialPrompt;
61
+ for (let attempt = 0; attempt < options.maxAttempts; attempt += 1) {
62
+ const generated = await options.generate(prompt, attempt === 0 ? 0.2 : 0);
63
+ generations.push(generated);
64
+ try {
65
+ validateInvestigationPlan(generated.output, options.rules);
66
+ return { generations, plan: generated.output };
67
+ }
68
+ catch (error) {
69
+ if (attempt + 1 >= options.maxAttempts) {
70
+ throw error;
71
+ }
72
+ const message = error instanceof Error ? error.message : "invalid investigation plan";
73
+ prompt = repairPrompt(options.initialPrompt, generated.output, message);
74
+ }
75
+ }
76
+ throw new Error("Investigation plan generation exhausted its attempt budget");
77
+ }
78
+ //# sourceMappingURL=planning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../src/investigator/planning.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,8 @@ export declare const experimentResultSchema: z.ZodObject<{
33
33
  }, z.core.$strip>>;
34
34
  durationMs: z.ZodNumber;
35
35
  status: z.ZodEnum<{
36
- passed: "passed";
37
36
  failed: "failed";
37
+ passed: "passed";
38
38
  }>;
39
39
  trialId: z.ZodString;
40
40
  }, z.core.$strip>>;
@@ -240,8 +240,8 @@ export declare const experimentEvidenceSchema: z.ZodObject<{
240
240
  }, z.core.$strip>>;
241
241
  durationMs: z.ZodNumber;
242
242
  status: z.ZodEnum<{
243
- passed: "passed";
244
243
  failed: "failed";
244
+ passed: "passed";
245
245
  }>;
246
246
  trialId: z.ZodString;
247
247
  }, z.core.$strip>>;
@@ -380,8 +380,8 @@ export declare const investigationReportSchema: z.ZodObject<{
380
380
  }, z.core.$strip>>;
381
381
  durationMs: z.ZodNumber;
382
382
  status: z.ZodEnum<{
383
- passed: "passed";
384
383
  failed: "failed";
384
+ passed: "passed";
385
385
  }>;
386
386
  trialId: z.ZodString;
387
387
  }, z.core.$strip>>;
@@ -19,5 +19,7 @@ export interface GeneratedCandidatePatch {
19
19
  candidate: CandidatePatch;
20
20
  usage: CandidateGenerationUsage;
21
21
  }
22
+ /** Keeps one structured repair request below Groq's baseline organization OTPM ceiling. */
23
+ export declare function candidateOutputTokenBudget(outputTokensPerMinute: number): number;
22
24
  export declare function generateCandidatePatch(options: PatchGeneratorOptions): Promise<GeneratedCandidatePatch>;
23
25
  export {};
@@ -3,6 +3,14 @@ import { readSafeRepairContext } from "../investigator/safe-source.js";
3
3
  import { QWEN_INPUT_USD_PER_MILLION, QWEN_OUTPUT_USD_PER_MILLION, } from "../investigator/groq.js";
4
4
  import { validateCandidatePatch } from "./policy.js";
5
5
  import { candidatePatchSchema } from "./schema.js";
6
+ const BASELINE_GROQ_OUTPUT_TOKENS_PER_MINUTE = 1_000;
7
+ /** Keeps one structured repair request below Groq's baseline organization OTPM ceiling. */
8
+ export function candidateOutputTokenBudget(outputTokensPerMinute) {
9
+ if (!Number.isInteger(outputTokensPerMinute) || outputTokensPerMinute < 100) {
10
+ throw new Error("Groq output-token limit must be an integer of at least 100");
11
+ }
12
+ return Math.floor(outputTokensPerMinute * 0.9);
13
+ }
6
14
  function estimatedCost(inputTokens, outputTokens) {
7
15
  return (inputTokens * QWEN_INPUT_USD_PER_MILLION
8
16
  + outputTokens * QWEN_OUTPUT_USD_PER_MILLION) / 1_000_000;
@@ -30,7 +38,7 @@ async function requestCandidate(options, prompt) {
30
38
  model: options.model,
31
39
  output: Output.object({ schema: candidatePatchSchema }),
32
40
  prompt: currentPrompt,
33
- maxOutputTokens: 1_500,
41
+ maxOutputTokens: candidateOutputTokenBudget(BASELINE_GROQ_OUTPUT_TOKENS_PER_MINUTE),
34
42
  maxRetries: 2,
35
43
  timeout: { totalMs: options.maxSeconds * 1_000 },
36
44
  abortSignal: options.signal,
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/repair/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/repair/generator.ts"],"names":[],"mappings":"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"}
@@ -158,8 +158,8 @@ export declare const evidenceReportSchema: z.ZodObject<{
158
158
  }, z.core.$strip>>;
159
159
  durationMs: z.ZodNumber;
160
160
  status: z.ZodEnum<{
161
- passed: "passed";
162
161
  failed: "failed";
162
+ passed: "passed";
163
163
  }>;
164
164
  trialId: z.ZodString;
165
165
  }, z.core.$strip>>;
@@ -23,5 +23,7 @@ export declare class ProgressReporter {
23
23
  step(text: string, tone?: StatusTone): void;
24
24
  done(detail?: string): void;
25
25
  fail(detail?: string): void;
26
+ /** Closes any live pulse before the command-level error is rendered. */
27
+ static failActive(): void;
26
28
  }
27
29
  export {};
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  import { formatDuration } from "./format.js";
2
3
  import { statusMark } from "./status.js";
3
4
  import { paint } from "./style.js";
@@ -18,6 +19,7 @@ function defaultPulseScheduler(pulse, intervalMs) {
18
19
  * It never emits cursor movement, carriage returns, or erase sequences.
19
20
  */
20
21
  export class ProgressReporter {
22
+ static #active = new Set();
21
23
  #animate;
22
24
  #cancelPulse;
23
25
  #label;
@@ -40,6 +42,7 @@ export class ProgressReporter {
40
42
  this.#label = sanitizeLine(label);
41
43
  this.#startedAt = Date.now();
42
44
  this.#line("running", this.#label, detail);
45
+ _a.#active.add(this);
43
46
  if (this.#animate) {
44
47
  this.#cancelPulse = this.#schedulePulse(() => this.#pulse(), this.#pulseIntervalMs);
45
48
  }
@@ -55,6 +58,12 @@ export class ProgressReporter {
55
58
  fail(detail) {
56
59
  this.#close("failure", detail);
57
60
  }
61
+ /** Closes any live pulse before the command-level error is rendered. */
62
+ static failActive() {
63
+ for (const reporter of [..._a.#active]) {
64
+ reporter.fail("failed");
65
+ }
66
+ }
58
67
  #close(tone, detail) {
59
68
  const label = this.#label;
60
69
  if (!label) {
@@ -62,6 +71,7 @@ export class ProgressReporter {
62
71
  }
63
72
  this.#stopPulse();
64
73
  this.#label = undefined;
74
+ _a.#active.delete(this);
65
75
  this.#line(tone, label, detail, formatDuration(Date.now() - this.#startedAt));
66
76
  }
67
77
  #finishPulseLine() {
@@ -102,4 +112,5 @@ export class ProgressReporter {
102
112
  return paint(this.#theme, "dim", truncate(sanitizeLine(value), MAXIMUM_DETAIL_LENGTH));
103
113
  }
104
114
  }
115
+ _a = ProgressReporter;
105
116
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/ui/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/ui/progress.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAejE,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAEjC,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAiB,EAAE,UAAkB;IAClE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5C,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAU,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC5C,QAAQ,CAAS;IAC1B,YAAY,CAAyB;IACrC,MAAM,CAAoB;IAC1B,UAAU,GAAG,CAAC,CAAA;IACd,cAAc,GAAG,KAAK,CAAA;IACb,gBAAgB,CAAQ;IACxB,cAAc,CAAgB;IACvC,UAAU,GAAG,CAAC,CAAA;IACL,MAAM,CAAe;IACrB,MAAM,CAAgB;IAE/B,YAAY,UAA2B,EAAE;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,uBAAuB,EAAE,CAAA;QAC5D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAA;QACxD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,qBAAqB,CAAA;QACpE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,EAAE,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,MAAe;QAClC,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1C,EAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACrF,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC,IAAY,EAAE,OAAmB,OAAO;QAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,CAAC,MAAe;QAClB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,MAAe;QAClB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,wEAAwE;IACxE,MAAM,CAAC,UAAU;QACf,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,EAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAgB,EAAE,MAAe;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACvB,EAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/E,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;YAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;QACpB,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAgB,EAAE,KAAa,EAAE,GAAG,OAA+B;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACrD,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC;aAC3E,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3E,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAA;IACxF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flakelab",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Find, reproduce, and prove fixes for flaky Playwright tests.",
5
5
  "type": "module",
6
6
  "license": "MIT",